栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis(二)——【Dao层实现、映射文件深入、核心配置文件深入】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis(二)——【Dao层实现、映射文件深入、核心配置文件深入】

目录

Mybatis的Dao层实现

传统开发方式

 代理开发方式

 MyBatis映射文件深入

动态sql语句

动态SQL之

动态SQL之

SQL片段抽取

总结

Mybatis核心配置文件深入

typeHandlers标签

 plugins标签

总结


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

    
        
        
            
                and id=#{id}
            
            
                and username=#{username}
            
            
                and password=#{password}
            
        
    

当查询条件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映射文件配置: