Mybatis(二) 原始dao开发和mapper开发

上传到博客后目录有问题,原目录如下

Mybatis(二) 原始dao开发和mapper开发

  1. 原始dao开发

    1. 需求

  1. 根据用户ID查询用户信息
  2. 根据用户名称模糊查询用户列表
  3. 添加用户
    1. 原始dao开发方式

    1. Dao接口

Mybatis(二) 原始dao开发和mapper开发

Mybatis(二) 原始dao开发和mapper开发

  1. Dao实现类

SqlSessionFactory,它的生命周期,应该是应用范围,全局范围只有一个工厂,使用单例模式来实现这个功能。与spring集成之后,由spring来对其进行单例管理。

 

SqlSession,它内部含有一块数据区域,存在线程不安全的问题,所以应该将sqlsession声明到方法内部。

 

Mybatis(二) 原始dao开发和mapper开发

  1. 代码测试

Test目录下建一个dao包

Mybatis(二) 原始dao开发和mapper开发

Mybatis(二) 原始dao开发和mapper开发

 

  1. 问题思考

  1. 有大量重复编码
  2. 存在硬编码问题
    1. Mapper代理开发

也就是开发mapper接口,mapper代理使用的是jdk的代理策略

  1. Mapper代理开发策略

  1. mapper接口的全限定名要和mapper映射文件的namespace值一致。
  2. mapper接口的方法名称要和mapper映射文件的statement的id一致。
  3. mapper接口的方法参数类型要和mapper映射文件的statement的parameterType的值一致,而且它的参数是一个。
  4. mapper接口的方法返回值类型要和mapper映射文件的statement的resultType的值一致。
    1. mapper接口

在包com.lichao.mapper下新建

Mybatis(二) 原始dao开发和mapper开发

  1. mapper映射文件

在config下创建mapper目录然后创建UserMapper.xml(这是mybatis的命名规范,当然,也不是必须是这个名称)

sqlSession内部的数据区域本身就是一级缓存,是通过map来存储的。

Mybatis(二) 原始dao开发和mapper开发

  1. 全局配置文件加载映射文件

加入下面那句

Mybatis(二) 原始dao开发和mapper开发

  1. 测试代码:

Mybatis(二) 原始dao开发和mapper开发