Mybatis Plus


目录

  1. 简介
  2. 依赖
  3. 配置文件
  4. mapper层
  5. MybatisPlus配置类
  6. 接口

参考/来源

简介

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类类似了。


文章作者: 小小千千
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小小千千 !
评论
  目录