Dao开发方法
使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法。
下面用一个小案例进行演示:
1. 需求:
1.1:根据用户id查询一个用户信息
1.2:根据用户名称模糊查询用户信息列表
1.3:添加用户信息
一:原始Dao开发方法
配置文件:
接口类:
实现类:
测试类:
原始Dao开发中存在以下问题:
1:Dao方法体存在重复代码:通过SqlSessionFactory创建SqlSession,调用SqlSession的数据库操作方法
2:调用sqlSession的数据库操作方法需要指定statement的id,这里存在硬编码,不得于开发维护。
二:Mapper动态代理方式
配置文件:
接口类:
测试类:
总结:
1:selectOne和selectList
动态代理对象调用sqlSession.selectOne()和sqlSession.selectList()是根据mapper接口方法的返回值决 定,如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。
2:namespace
mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或mapper对象,保证dao的通用性。
说明:由于本人学艺不精,如有不足之处还请各位大佬指正。