创建 SqlSession
一般情况下,你可以通过 SqlSessionFactory 的 openSession 方法创建 SqlSession 实例。SqlSession 的创建是相对轻量级的操作,因此通常在每个数据库操作中都会创建一个新的 SqlSession 实例。
SqlSession sqlSession = sqlSessionFactory.openSession();
查询操作
通过 SqlSession,你可以执行查询操作,并获取查询结果。以下是一个简单的查询示例:
User user = sqlSession.selectOne("getUserById", 1);
在这个例子中,getUserById 是映射文件中定义的查询语句的唯一标识符,1 是传递给查询的参数。
插入、更新和删除操作
SqlSession 提供了相应的方法来执行插入、更新和删除操作:
// 插入
int rowsInserted = sqlSession.insert("insertUser", newUser);
// 更新
int rowsUpdated = sqlSession.update("updateUser", updatedUser);
// 删除
int rowsDeleted = sqlSession.delete("deleteUser", userId);
在这些例子中,insertUser、updateUser 和 deleteUser 是映射文件中定义的对应操作的唯一标识符。
获取 Mapper 接口实例
MyBatis 通过动态代理机制支持使用 Mapper 接口进行数据库操作。你可以通过 getMapper 方法获取 Mapper 接口的实例,然后使用该实例调用方法执行数据库操作:
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.getUserById(1);
提交和回滚事务
在默认情况下,SqlSession 是不自动提交事务的。你可以通过调用 commit 方法手动提交事务,或者通过调用 rollback 方法回滚事务:
sqlSession.commit();
// 或
sqlSession.rollback();
关闭 SqlSession
使用完 SqlSession 后,需要关闭它以释放资源。你可以调用 close 方法来关闭 SqlSession:
sqlSession.close();
注意事项
- SqlSession 的实例是非线程安全的,每个线程应该拥有自己的 SqlSession 实例。
- 在使用完 SqlSession 后,应该及时关闭以释放数据库连接。
- 如果使用了事务,务必要在合适的地方调用 commit 或 rollback 方法,以确保事务的正确提交或回滚。
总体而言,SqlSession 是 MyBatis 中执行数据库操作的关键接口,通过它,你可以执行各种 SQL 操作,管理事务,并获取 Mapper 接口的实例进行数据库操作。
转载请注明出处:http://www.zyzy.cn/article/detail/7032/MyBatis