千家信息网

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

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收
千家信息网最后更新 2024年11月11日Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析

Java Mybatis框架Dao层的实现与映射文件以及核心配置文件的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

    Mybatis的Dao层实现

    传统开发方式

    1、编写UserDao接口

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

    2、编写UserDaoImpl实现

    3、测试传统方式

    代理开发方式

    代理开发方式介绍

    采用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接口

    2、测试代理方式

    MyBatis映射文件深入

    动态sql语句

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

    动态SQL之

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

        select * from user     

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

    动态SQL之

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

    测试代码如下

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

    SQL片段抽取

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

    总结

    MyBatis映射文件配置: