本文主要是介绍【Mybatis】批量映射优化 分页插件PageHelper 逆向工程插件MybatisX,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、Mapper批量映射优化
- 二、插件和分页插件PageHelper
- 2.1 插件机制和PageHelper插件介绍
- 2.2 PageHelper插件使用
- 三、逆向工程和MybatisX插件
- 3.1 ORM思维介绍
- 3.2 逆向工程
- 3.3 逆向工程插件MyBatisX使用
- 总结
一、Mapper批量映射优化
-
需求:
Mapper 配置文件很多时,在全局配置文件中一个一个注册太麻烦 -
配置方式
Mybatis 允许在指定 Mapper 映射文件时,只指定其所在的包:
<mappers><package name="com.wake.mapper"/></mappers>
此时这个包下的所有 Mapper 配置文件将被自动加载、注册
- 资源创建要求
-
- 要求
mapper.xml
文件 和mapper接口
的命名必须相同
- 要求
-
- 最终打包后的位置要一致,都需要在指定的包地址下
- ①
resources
文件夹创建对应的文件夹结构 (推荐) - ② xml文件创建在接口所在的包内,在添加pom.xml 配置(麻烦不推荐)
- 注意:resources 下直接创建多层文件夹 使用
/
分割,不使用.
。
-
实例:
编译后:
二、插件和分页插件PageHelper
2.1 插件机制和PageHelper插件介绍
插件可以在用于语句执行过程中进行拦截,并允许通过自定义处理程序来拦截和修改 SQL 语句、映射语句的结果等。
Mybatis-PageHelper 使用文档 Github
使用插件,我们就可以不用自己计算 limit 分页
2.2 PageHelper插件使用
- pom.xml 导入依赖
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.11</version></dependency>
- mybatis-config.xml 配置分页插件
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><property name="helperDialect" value="mysql"/></plugin>
</plugins>
其中,
com.github.pagehelper.PageInterceptor
是 PageHelper 插件的名称,dialect
属性用于指定数据库类型(支持多种数据库)
从标签 <configuration>
中确定 <plugins>
放在哪个位置
-
插件使用
在查询方法中使用分页: -
xml
<!-- List<Employee> queryAll(); -->
<mapper namespace="com.wake.mapper.EmployeeMapper"><select id="queryAll" resultType="employee"><!-- 正常编写,结尾不加分号; -->select * from t_emp where emp_salary > 100</select>
</mapper>
@Testpublic void test(){EmployeeMapper employeeMapper = sqlSession.getMapper(EmployeeMapper.class);// 调用之前 , 先设置分页数据(当前是第几页,每页显示多少条数据)PageHelper.startPage(1,2);// 注意不能将两条查询装到一个分页区List<Employee> employeeList = employeeMapper.queryAll();//将查询的数据封装到一个PageInfo的分页实体类(一共多少页,一共多少条等)PageInfo<Employee> employeePageInfo = new PageInfo<>(employeeList);// 获取当前页数据List<Employee> list = employeePageInfo.getList();System.out.println("list: "+list);// 获取总页数int pages = employeePageInfo.getPages();System.out.println("pages: " + pages);// 获取总条数long total = employeePageInfo.getTotal();System.out.println("total: " + total);int pageNum = employeePageInfo.getPageNum();int pageSize = employeePageInfo.getPageSize();System.out.println("当前第:"+pageNum+" 页,每页显示:"+pageSize+" 条");}
三、逆向工程和MybatisX插件
3.1 ORM思维介绍
ORM(Object-Relational Mapping,对象-关系映射)是一种将数据库和面向对象编程语言中的对象之间进行转换的技术。
让我们可以使用面向对象思维进行数据库操作。
期望半自动orm框架,也能实现单表的crud自动生成
使用逆向工程:半自动orm -》全自动orm
3.2 逆向工程
- MyBatis 的逆向工程是一种自动化生成持久层代码和映射文件的工具,
- 它可以根据数据库表结构和设置的参数生成对应的实体类、Mapper.xml 文件、Mapper 接口等代码文件
注意:逆向工程只能生成单表crud的操作,多表查询依然需要我们自己编写!
3.3 逆向工程插件MyBatisX使用
MyBatisX 是一个 MyBatis 的代码生成插件,可以通过简单的配置和操作快速生成 MyBatis Mapper、pojo 类和 Mapper.xml 文件。
-
安装插件:
-
IDEA中连接数据库
-
选择需要创建CRUD的表
-
填写信息
-
结果显示
总结
核心点 | 掌握目标 |
---|---|
mybatis基础 | 使用流程, 参数输入,#{} ${},参数输出 |
mybatis多表 | 实体类设计,resultMap多表结果映射 |
mybatis动态语句 | Mybatis动态语句概念, where , if , foreach标签 |
mybatis扩展 | Mapper批量处理,分页插件,逆向工程 |
这篇关于【Mybatis】批量映射优化 分页插件PageHelper 逆向工程插件MybatisX的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!