mybatis|使用mybatis框架,完成增删改查操作( 二 )
值得注意的是:
在核心配置文件中要加入该映射文件说明 。
3UserDaoImpl实现类
dao层中的代码很纯粹 , 只用来增删改查 。 获取sqlSession对象的代码不在dao层中编写 。
所以创建构造方法 , 参数为sqlSession 。
也就是说想要使用dao层 , 就得给传一个sqlSession对象完成初始化 。
其中增删改操作中我们需要调用commit方法提交事务 , 不然数据库中的数据不会修改 。
查询不需要事务提交 , 这也好理解 , 本身并没有对数据库中的数据进行修改 。
4创建测试类
①创建测试类
使用快捷键Ctrl+Shift+T在UserDao接口名上可以快速创建一个对应的测试类 。
②设定测试类方法
接口中的哪些方法需要测试可以自行选择 , 其中setUp@Before选择后会创建一个setUp()方法 。
这个before是什么意思呢?
就是上述一共有5个要测试的方法 , 每个方法运行时都会先执行before方法里的内容 。
所以将获取sqlSession对象的操作封装到setUp方法中 , 每次增删改查时会先获取sqlSession对象 。
5最后测试下增加操作
测试代码一运行 , 分析下其流程:
- set up()方法会优先执行 , 从而获取SqlSession对象 , 并将userDao初始化
- 调用该dao层中的增加方法 , 执行的也就是其实现类中的insertUser()方法 。
- insertUser()方法中也就是利用sqlSession对象进行增加操作 。
- 参数为sql语句对应的映射文件id , 和需要增加的数据user 。
- 这样在数据库中就增加了一条数据 。
再次说明这个mapper层也就是dao层 , 只不过我们以前一直把它叫做dao层 。
如何将接口和映射文件连接起来呢?需要满足以下条件:
- 映射文件中的命名空间与Mapper接口的全路径一致 , 也就是上图中最上面的箭头 。
- 映射文件中sql语句的id与Mapper接口的方法名保持一致 。
在满足上面的要求后 , 就可以使用动态代理省略实现类的编写了 , 创建测试类 , 并编写代码:
使用快捷键Ctrl+Shift+T创建测试类 。
其实关键就是sqlSession.getMapper()这个方法 , 其本质就相当于userMapper的实现类 。
实现原理可以查看该方法源码 , 这里就不做拓展了 , 知道它和通过实现类的方式一样即可 。
这样完成之后就可以直接在测试代码中使用userMapper增删改查 。
最后谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。
- 航天器|中国可重复使用航天器刚发射成功,美媒就来乱弹琴:或是太空武器
- 航天器|热烈祝贺!我国可重复使用试验航天器成功着陆!
- 精彩球坛|适合追剧党使用的蓝牙耳机有哪些推荐啊?日常听歌看剧必备神器!
- 航天器|任务完成了都没一张照片,我国“可重复使用航天器”为何这么神秘
- 苹果|网友使用iOS13.7后真实感受:真后悔购买
- 柠檬少年|一加8pro的使用开箱及初体验
- Java|马化腾登顶中国首富,微信、QQ却都免费使用,腾讯到底咋赚钱的?
- 卫星|以前用的“卫星锅”,它到底能看到些什么?怪不得要禁止使用
- 光一样的少年|必须试试,受够了电脑弹窗广告的你
- |使用Vue编写品牌管理的前端页面