MyBatis Mapper — это универсальный Mapper, основанный на mybatis-mapper/provider ( gitee | GitHub).
Проектная документация: https://mapper.mybatis.io
Добавьте зависимость:
<dependency>
<groupId>io.mybatis</groupId>
<artifactId>mybatis-jakarta-jpa</artifactId>
<version>2.2.4</version>
</dependency>
Это универсальный Mapper, который можно использовать без какой-либо настройки. Просто изучите его и используйте в своём проекте.
Для MyBatis Mapper требуется минимальная версия MyBatis 3.5.1, рекомендуется использовать последнюю версию (https://maven-badges.herokuapp.com/maven-central/org.mybatis/mybatis).
Как и MyBatis, требуется как минимум Java 8.
<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")
}
Основной принцип MyBatis Mapper заключается в сопоставлении сущностей с таблицами и полями базы данных. После настройки основных метаданных сущности, достаточно создать Mapper интерфейс, наследующий базовый интерфейс, чтобы начать использовать его.
Предположим, что есть таблица:
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; //省略其他 }
После создания класса сущности User
можно напрямую создать интерфейс Mapper, унаследованный от Mapper
:
//io.mybatis.mapper.Mapper
public interface UserMapper extends Mapper<User, Long> {
}
Этот интерфейс будет автоматически использоваться при сканировании MyBatis.
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.