简介 通用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+8 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。
附上目录结构