简介
通用mapper
是一个国人编写的工具jar,它可以极其方便的做单表增删改查(使用Mybatis框架),目前不支持通用的多表联合查询,在使用mybatis时,就不需要重复的维护功能类似单表操作mapper.xml文件和mapper接口的定义
springBoot快速集成通用mapper
一、pom文件引入通用mapper依赖
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.25</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!--通用Mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
注:
这里最主要的是tk.mybatis依赖,其他依赖都是基本的
二、基础配置 application.properties
#mysql数据库
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/springbootdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= 111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#mybatis
#开启驼峰
mybatis.configuration.map-underscore-to-camel-case=true
#打印日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#通用mapper
mapper.identity=MYSQL
mapper.not-empty=false
mapper.mappers=com.example.demo.dao.base.IBaseMapper
三、基础mapper->IBaseMapper
- 写一个基础的mapper,继承Mapper, MySqlMapper, IdsMapper
/**
* Mapper接口:基本的增、删、改、查方法
* MySqlMapper:针对MySQL的额外补充接口,支持批量插入
* IdsMapper:使mapper支持批量ID操作
* @param <T>
*/
public interface IBaseMapper<T> extends Mapper<T>, MySqlMapper<T>, IdsMapper<T> {
}
- 其他mapper继承基础mapper
@Repository
public interface SysUserDao extends IBaseMapper<SysUser> {
}
public class SysUser implements Serializable {
/**
* 主键
*/
@Id
private Integer id;
/**
* 用户名
*/
@NotEmpty(message = "用户名不能为空")
private String username;
/**
* 密码
*/
@NotEmpty(message = "密码不能为空")
private String password;
/**
* 电话
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 创建时间
*/
private Date createDate;
/**
* 更新时间
*/
private Date updateDate;
/**
* sys_user
*/
private static final long serialVersionUID = 1L;
省略get set方法
}
注:
这里主键一定要加@Id
- 启动类配置
@SpringBootApplication
@tk.mybatis.spring.annotation.MapperScan("com.example.demo.dao.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
注:
MapperScan一定要用@tk.mybatis.spring.annotation.MapperScan
其次扫描的包下不要要包含IBaseMapper,否则会报错
四、测试
@RestController
public class DemoController {
@Autowired
private SysUserDao dao;
@RequestMapping(value = "/test",method = RequestMethod.GET)
public List<SysUser> tkMapper(){
List<SysUser> list=new ArrayList<>();
for(int i=0;i<=10;i++){
SysUser user=new SysUser();
user.setUsername(String.valueOf(i));
list.add(user);
}
dao.insertList(list);//批量插入
return dao.selectAll();//查询所有
}
}
至此每一个mapper接口,都可以继承基础mapper IBaseMapper
,从而可以少写很多单表操作
的接口和sql。
附上目录结构