MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
MyBatis Plus 的核心功能有:支持通用的 CRUD、代码生成器与条件构造器。
BaseMapper<T>
接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件EntityWrapper<T>
(实体包装类),可以用于拼接 SQL 语句,并且支持排序、分组查询等复杂的 SQLBaseMapper<T>
接口中通用的 CRUD 方法:
数据表结构
DROP TABLE IF EXISTS `tbl_employee`;
CREATE TABLE `tbl_employee` (`id` int(11) NOT NULL AUTO_INCREMENT,`last_name` varchar(50) DEFAULT NULL,`email` varchar(50) DEFAULT NULL,`gender` char(1) DEFAULT NULL,`age` int(11) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
pom
文件
<dependencies><!-- MP --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus</artifactId><version>2.3</version></dependency><!-- 测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!-- 数据源 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><!-- 数据库驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.39</version></dependency><!-- Spring 相关 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.9.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.3.9.RELEASE</version></dependency></dependencies>
MyBatis 全局配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis//DTD Config 3.0//EN"".dtd">
<!-- 不作任何配置 -->
<configuration />
数据源 db.properties
jdbc.url=jdbc:mysql://localhost:3306/mp
jdbc.username=root
jdbc.password=1234
Spring 配置文件
<!-- 数据源 --><context:property-placeholder location="classpath:db.properties"/><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property></bean><!-- MP 提供的 MybatisSqlSessionFactoryBean --><bean id="sqlSessionFactoryBean" class="batisplus.spring.MybatisSqlSessionFactoryBean"><!-- 数据源 --><property name="dataSource" ref="dataSource"></property><!-- mybatis 全局配置文件 --><property name="configLocation" value="l"></property><!-- 别名处理 --><property name="typeAliasesPackage" value="com.jas.bean"></property><!-- 注入全局MP策略配置 --><property name="globalConfig" ref="globalConfiguration"></property><!-- 插件注册 --><property name="plugins"><list><!-- 注册分页插件 --><bean class="batisplus.plugins.PaginationInterceptor" /><!-- 注入 SQL 性能分析插件,建议在开发环境中使用,可以在控制台查看 SQL 执行日志 --><bean class="batisplus.plugins.PerformanceInterceptor"><property name="maxTime" value="1000" /><!--SQL 是否格式化 默认false--><property name="format" value="true" /></bean></list></property></bean><!-- 定义 MybatisPlus 的全局策略配置--><bean id ="globalConfiguration" class="ity.GlobalConfiguration"><!-- 在 2.3 版本以后,dbColumnUnderline 默认值是 true --><property name="dbColumnUnderline" value="true"></property><!-- 全局的主键策略 --><property name="idType" value="0"></property><!-- 全局的表前缀策略配置 --><property name="tablePrefix" value="tbl_"></property></bean><!-- 配置mybatis 扫描mapper接口的路径 --><bean class=batis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.jas.mapper"></property></bean>
实体类 Employee
@TableName(value = "tbl_employee")
public class Employee {@TableId(value = "id", type = IdType.AUTO)private Integer id;@TableField(value = "last_name")private String lastName;private String email;private Integer gender;private Integer age;public Employee() {super();}public Employee(Integer id, String lastName, String email, Integer gender, Integer age) {this.id = id;this.lastName = ail = der = gender;this.age = age;}// 省略 set、get 与 toString() 方法
mapper 接口
/**
* 不定义任何接口方法
*/
public interface EmployeeMapper extends BaseMapper<Employee> {}
在测试类中生成测试的 mapper 对象
private ApplicationContext context = new ClassPathXmlApplicationContext("l");private EmployeeMapper employeeMapper = Bean("employeeMapper", EmployeeMapper.class);
@Testpublic void getEmpByIdTest() {Employee employee = employeeMapper.selectById(1);System.out.println(employee);}
@Testpublic void getEmpByPage() {Page<?> page = new Page<>(1, 5);List<Employee> list = employeeMapper.selectPage(page, null);System.out.println("总记录数:" + Total());System.out.println("总页数" + Pages());System.out.println(list);}
@Testpublic void getEmpByName() {EntityWrapper<Employee> wrapper = new EntityWrapper<>();// 'last_name' 与 'age' 对应数据库中的字段 wrapper.like("last_name", "张");wrapper.eq("age", 20);List<Employee> list = employeeMapper.selectList(wrapper);System.out.println(list);}
控制台输出的 SQL 分析日志
上面几个例子中,并没有在 EmployeeMapper
接口中定义任何方法,也没有在配置文件中编写 SQL 语句,而是通过继承 BaseMapper<T>
接口获得通用的的增删改查方法,复杂的 SQL 也可以使用条件构造器拼接。
通过这两种方式已经能够满足很多的开发需求了,不过复杂的业务需求还是要编写 SQL 语句的,流程和 MyBatis 一样。
PS:
完整的代码(mybatis-plus-demo
目录)传到了 GitHub,包括 SQL 表结构与数据文件,点我前往~
本文发布于:2024-01-29 06:03:56,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170647943913221.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |