SqlSession
功能
执行SQL语句,事务管理,获取Mapper等,相当于一个数据库连接(不太一样)
SQL可直接由SqlSession执行,也可由SqlSession获得Mapper后,由Mapper执行
生命周期
应存在于一个业务中,包含多个Mapper执行请求,commit后关闭连接(必须)
使用方法
参见: https://mybatis.org/mybatis-3/zh/java-api.html#SqlSession
直接执行
1 | Module module = (Module)sqlSession.selectOne("statement", param); |
可选方法有selectOne、selectList、insert、update等,具体可参见org.apache.ibatis.session.SqlSession接口
statement指Mapper配置文件中包含namespace的SQL语句id的全限定名,若该id是全局唯一的,也可只写id名
缺点
使用字符串形式,不符合类型安全,无法获得有效提示和错误信息,难以测试等原因,不常使用
通过Mapper接口执行
获取Mapper接口
1
MapperInterface m = sqlSession.getMapper(MapperInterface.class)
执行接口中的函数定义
关闭连接
当使用连接池时,close方法会见连接返回连接池,并不会真正关闭
1 | sqlSession.close() |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 AlMirai!