Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析

Mybatis的Dao层实现

传统开发方式

1、编写UserDao接口

public interface UserMapper {
 
    public List findAll() throws IOException;
}

2、编写UserDaoImpl实现

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第1张图片

3、测试传统方式

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第2张图片

代理开发方式

代理开发方式介绍

采用Mybatis的代理开发方式实现DAO层的开发,这种方式是我们后面进入企业的主流.
Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。
Mapper接口开发需要遵循以下规范:

①Mapper.xml文件中的namespace与mapper接口的全限定名相同
②Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
③Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同4、④Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相

1、编写UserMapper接口

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第3张图片

2、测试代理方式

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第4张图片

MyBatis映射文件深入

动态sql语句

动态sql语句描述【官方文档】

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第5张图片

动态SQL之

我们根据实体类的不同取值,使用不同的SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。

    
    select * from user
 
    

当查询条件id和username都存在时,测试代码如下

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第6张图片

动态SQL之

循环执行sql的拼接操作,例如: SELECT * FROM USER WHERE id IN (1,2,5)。

    

测试代码如下

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第7张图片

foreach标签的属性含义如下:
标签用于遍历集合,它的属性:
①collection:代表要遍历的集合元素,注意编写时不要写#{}
②open:代表语句的开始部分
③close:代表结束部分
④item:代表遍历集合的每个元素,生成的变量名
⑤sperator:代表分隔符

SQL片段抽取

Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析_第8张图片

总结

MyBatis映射文件配置: