《MyBatis技术原理与实战》之SqlSession的用途

来源:互联网 发布:数据库系统的组成部分 编辑:程序博客网 时间:2024/05/17 22:18

1.Mybatis中SqlSession主要有两种用途:

  • 获取映射器,让映射器通过命名空间和方法名称找到对应的SQL,发送给数据库执行后返回结果
  • 直接通过命名信息去执行SQL返回结果,这是IBatis版本留下的方式。在sqlSession层我们可以通过update、insert、select、delete等方法,带上SQL的id来操作XML中配置好的SQL,从而完成我的工作;与此同时它也支持事物,通过commit、rollback方法提交或者回滚事务。

2.SqlSession获取映射器,然后映射器去发送sql

//获取映射器RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);Role role = roleMapper.getRole(1L);//执行方法

3.SqlSession直接发送sql执行并返回结果

Role role = sqlSession.selectOne("com.learn.chapter2.mapper.RoleMapper.getRole",1L);

还需查询列表的selectList等方法。

4.两者区别与用途

  • sqlSession.selectOne是功能性代码,长长的字符串比较晦涩难懂,不包含业务逻辑的含义,不符合面向对象的规范。而对于roleMapper这样的才是符合面向对象规范的编程,也更符合业务的逻辑。
  • 使用Mapper方式,IDE可以检查Java预发,避免不必要的错误。
  • 在实际开发中,一般都采用面向接口编程,此时是没有dao层实现类的,所以sqlSession.selectOne也不适用。
原创粉丝点击