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

本文介绍了使用MyBatis进行数据库操作的两种主要方式:原始DAO开发与Mapper代理开发,并详细探讨了Mapper代理的实现机制及其开发策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

  1. 原始dao开发

    1. 需求

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

    1. Dao接口

  1. Dao实现类

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

 

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

 

  1. 代码测试

Test目录下建一个dao包

 

  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下新建

  1. mapper映射文件

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

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

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

加入下面那句

  1. 测试代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值