功能

执行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);

可选方法有selectOneselectListinsertupdate等,具体可参见org.apache.ibatis.session.SqlSession接口

statement指Mapper配置文件中包含namespace的SQL语句id的全限定名,若该id是全局唯一的,也可只写id名

缺点

使用字符串形式,不符合类型安全,无法获得有效提示和错误信息,难以测试等原因,不常使用

通过Mapper接口执行

  1. 获取Mapper接口

    1
    MapperInterface m = sqlSession.getMapper(MapperInterface.class)
  2. 执行接口中的函数定义

关闭连接

当使用连接池时,close方法会见连接返回连接池,并不会真正关闭

1
sqlSession.close()