目录
- 简介
- 依赖
- 配置文件
- mapper层
- MybatisPlus配置类
- 接口
参考/来源
简介
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
特性
官网说的特性太多了,其中几个如下:
- 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
- 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
- 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
- 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
- 支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库
- 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
个人觉得,功能和Mybatis generator类似。
依赖
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
配置文件
server:
port: 80
spring:
datasource :
url : jdbc:mysql://localhost:3306/test
username : root
password : qianhao123
driver-class-name : com.mysql.jdbc.Driver
mapper层
public interface UserMapping extends BaseMapper<User>{
}
MybatisPlus配置类
@Configuration
@MapperScan(basePackages = "com.jason.mapper") //这里顺便就加入了扫包路径
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public MybatisPlusInterceptor paginationInnerInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
接口
@RestController
public class UserController {
@Autowired
private UserMapping userMapping;
/**
* 查询所有记录
* @return
*/
@RequestMapping("/getAll")
public String getAll() {
List<User> list = userMapping.selectList(new QueryWrapper<User>());
return JSON.toJSONString(list);
}
/**
* 分页查询
* @param pageindex
* @param pagesize
* @return
*/
@RequestMapping("page")
public String page(int pageindex, int pagesize) {
Page<User> page = userMapping.selectPage(new Page<User>(pageindex, pagesize), new QueryWrapper<User>());
System.out.println(JSON.toJSON(page));
return JSON.toJSONString(page.getRecords());
}
/**
* 新增一个用户信息
* @param user
* @return
*/
@RequestMapping("/addUser")
public String addUser(User user) {
try {
int insert = userMapping.insert(user);
return String.valueOf(insert);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return "addUser failed";
}
}
}
QueryWrapper
是 MyBatis-Plus 内部辅助查询类,可以使用 lambda 语法,也可以不使用。利用 QueryWrapper 类可以构建各种查询条件。
这就和Mybatis generator的Example类类似了。