title: MyBatis的学习笔记
date: 2020-09-05 17:49:19
tags:
1.Mybatis的Dao层实现
1.1传统的开发方式
1.1.1编写UserDao接口
1 | `public interface UserDao {` |
1.1.1编写UserDaoImpl实现类
1 | `public class UserDaoImpl implements UserDao {` |
1.1.3测试传统方式
1 | ` ` |
1.2代理开发方式
1.2.1代理开发方式介绍
采用 Mybatis 的代理开发方式实现 DAO 层的开发,这种方式是我们后面进入企业的主流。
Mapper 接口开发方法只需要程序员编写Mapper 接口(相当于Dao 接口),由Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
Mapper接口开发需要遵循以下规范:
1) Mapper.xml文件中的namespace与mapper接口的全限定名相同
2) Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
3) Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同
4) Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
2.MyBatis映射文件
2.1动态的sql语句
2.1.1
我们根据实体类的不同取值,使用不同的 SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。
2.1.2循环执行sql的拼接操作,例如:SELECT * FROM USER WHERE id IN (1,2,5)。
foreach标签的属性含义如下:
•collection:代表要遍历的集合元素,注意编写时不要写#{}
•open:代表语句的开始部分
•close:代表结束部分
•item:代表遍历集合的每个元素,生成的变量名
•sperator:代表分隔符
2.2sql片段的抽取
sql中有重复的sql抽取出来,方便维护,减少代码的冗余性。。使用include标签即可。
3.plugins标签
MyBatis可以使用第三方的插件来对功能进行扩展,分页助手PageHelper是将分页的复杂操作进行封装,使用简单的方式即可获得分页的相关数据
开发步骤:
①导入通用PageHelper的坐标
②在mybatis核心配置文件中配置PageHelper插件
③测试分页数据获取
1 | <!-- 分页助手 --> |
2.在mybatis核心配置文件中配置PageHelper插件
1 | <!-- 注意:分页助手的插件 配置在通用馆mapper之前 --> |
注意:当使用pageHelper版本为5.0以上的时候,配置文件中不能使用以下配置:
1 | <!-- 注意:分页助手的插件 配置在通用馆mapper之前 --> |
因为MyBatis实现插件原理是底层通过intercepto接口,而pageHelper5.0以上版本是通过PageInterceptor类继承的intercepto