1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mybatis-mapper-mapper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 6.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 07:36 506dc5d

MyBatis Mapper

MyBatis Mapper — это универсальный Mapper, основанный на mybatis-mapper/provider ( gitee | GitHub).

Проектная документация: https://mapper.mybatis.io

Присоединяйтесь к QQ группе: 277256950

(https://qm.qq.com/cgi-bin/qm/qr?k=ks1Y2WVNI1xjsqMlBzAkWmBMuYqDhVqZ&jump_from=webapi&authKey=U0CL8SDMS4wsJ8H9njVcNMbOW6Gb9AsxLfFB4jbxSKa0w0ChBX3wCms0+Cjzhekw)

Поддержка jakarta.persistence-api

Добавьте зависимость:

<dependency>
  <groupId>io.mybatis</groupId>
  <artifactId>mybatis-jakarta-jpa</artifactId>
  <version>2.2.4</version>
</dependency>

1. Быстрый старт

Это универсальный Mapper, который можно использовать без какой-либо настройки. Просто изучите его и используйте в своём проекте.

1.1 Основные цели

  1. Используйте сразу после установки, без каких-либо настроек, просто наследуйте базовый класс Mapper для получения большого количества универсальных методов;
  2. Создавайте свои собственные базовые классы Mapper по своему усмотрению, копируя и вставляя код;
  3. Предоставляйте услуги слоя упаковки для удобства использования и понимания Mapper в бизнесе;
  4. Простой и понятный, предоставляйте режим ActiveRecord, сочетающийся с автоматической конфигурацией Spring Boot;
  5. Реализуйте пользовательские методы с помощью нескольких строк кода;
  6. Легко расширяемый с помощью Java SPI.

1.2 Системные требования

Для MyBatis Mapper требуется минимальная версия MyBatis 3.5.1, рекомендуется использовать последнюю версию (https://maven-badges.herokuapp.com/maven-central/org.mybatis/mybatis).

Как и MyBatis, требуется как минимум Java 8.

1.3 Установка

<CodeGroupItem title="Maven" active>

```xml
<dependencies>
  <dependency>
    <groupId>io.mybatis</groupId>
    <artifactId>mybatis-mapper</artifactId>
    <version>2.2.4</version>
  </dependency>
  <!-- 使用 Service 层封装时 -->
  <dependency>
    <groupId>io.mybatis</groupId>
    <artifactId>mybatis-service</artifactId>
    <version>2.2.4</version>
  </dependency>
  <!-- 使用 ActiveRecord 模式时 -->
  <dependency>
    <groupId>io.mybatis</groupId>
    <artifactId>mybatis-activerecord</artifactId>
    <version>2.2.4</version>
  </dependency>
</dependencies>
dependencies {
  compile("io.mybatis:mybatis-mapper:2.2.4")
  // 使用 Service 层封装时
  compile("io.mybatis:mybatis-service:2.2.4")
  // 使用 ActiveRecord 模式时
  compile("io.mybatis:mybatis-activerecord:2.2.4")
}

1.4 Быстрая настройка

Основной принцип MyBatis Mapper заключается в сопоставлении сущностей с таблицами и полями базы данных. После настройки основных метаданных сущности, достаточно создать Mapper интерфейс, наследующий базовый интерфейс, чтобы начать использовать его.

1.4.1 Настройка сущности

Предположим, что есть таблица:

create table user
(
  id   INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) PRIMARY KEY,
  name VARCHAR(32) DEFAULT 'DEFAULT',
  sex  VARCHAR(2)
);

Соответствующий класс сущности:

import io.mybatis.provider.Entity;

@Entity.Table("user")
public class User {
  @Entity.Column(id = true)
  private Long   id;
  @Entity.Column("name")
  private String username;
  @Entity.Column
  private String sex;

  //省略set和get方法
}

Класс сущности должен содержать аннотацию @Entity.Table, указывающую имя таблицы, соответствующей классу сущности. Рекомендуется явно указывать имя таблицы. Если имя таблицы не указано, используется имя класса сущности. Все поля, соответствующие столбцам таблицы, должны содержать аннотацию @Entity.Column. Если имя столбца не указано, используется имя поля (без преобразования). Поле может быть помечено как первичный ключ с помощью id=true.

Аннотации @Entity содержат множество атрибутов конфигурации. Для использования дополнительных параметров конфигурации обратитесь к разделу 3. Аннотация @Entity. Вот простой пример:

@Entity.Table(value = "sys_user", remark = "系统用户", autoResultMap = true)
public class User {
 @Entity.Column(id = true, remark = "主键", updatable = false, insertable = false)
 private Long   id;
 @Entity.Column(value = "name", remark = "帐号")
 private String userName;
 //省略其他
}

1.4.2 Определение интерфейса Mapper

После создания класса сущности User можно напрямую создать интерфейс Mapper, унаследованный от Mapper:

//io.mybatis.mapper.Mapper
public interface UserMapper extends Mapper<User, Long> {

}

Этот интерфейс будет автоматически использоваться при сканировании MyBatis.

1
https://api.gitlife.ru/oschina-mirror/mybatis-mapper-mapper.git
git@api.gitlife.ru:oschina-mirror/mybatis-mapper-mapper.git
oschina-mirror
mybatis-mapper-mapper
mybatis-mapper-mapper
master