什么是通用Mapper
通用Mapper就是为了解决单表增删改查,基于Mybatis的插件。开发人员不需要编写SQL,不需要在DAO中增加方法,只要写好实体类,就能支持相应的增删改查方法。
依赖:
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-core</artifactId>
<version>1.1.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-base</artifactId>
<version>1.1.5</version>
</dependency>
dao层 不需要增删改查的方法,只要
@Repository
@Mapper
public interface SysAreaMapper extends BaseMapper<SysArea> {
}
实体类注意事项:
- 表名默认使用类名,驼峰转下划线(只对大写字母进行处理),如
UserInfo
默认对应的表名为user_info
。 - 表名可以使用
@Table(name = "tableName")
进行指定,对不符合第一条默认规则的可以通过这种方式指定表名. - 字段默认和
@Column
一样,都会作为表字段,表字段默认为Java对象的Field名字驼峰转下划线形式. - 可以使用
@Column(name = "fieldName")
指定不符合第3条规则的字段. - 建议一定是有一个
@Id
注解作为主键的字段,可以有多个@Id
注解的字段作为联合主键.
参考 https://www.cnblogs.com/cainame/p/11938591.html
补充:
自定义basemapper支持批量增删改操作
配置类
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
使用
@Repository
@Mapper
public interface SysAreaMapper extends BaseMapper<SysArea> {
}
注意事项:
BaseMapper 和 SysAreaMapper 不可在同一个包下