对MyBatis的SqlSession理解
SqlSession
是 MyBatis
框架中的一个接口,用于执行与数据库相关的操作。它提供了一系列方法,用于查询、插入、更新和删除数据等数据库操作。
SqlSession
接口是通过SqlSessionFactory
创建的,每个SqlSession实例都代表着与数据库的一次会话。在会话期间,可以使用SqlSession
对象执行各种数据库操作,并管理事务的提交或回滚。
使用SqlSession进行数据库操作的一般步骤如下:
- 通过
SqlSessionFactory
创建SqlSession
实例。 - 使用
SqlSession
的方法执行数据库操作。 - 根据需要进行事务的提交或回滚。
- 关闭
SqlSession
,释放数据库连接。
public class Main {
public static void main(String[] args) {
SqlSession sqlSession = null;
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource); //获取了一个输入流inputStream,用于读取MyBatis的配置文件
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryBuilder().build(inputStream);// 使用SqlSessionFactoryBuilder构建SqlSessionFactory实例
sqlSession = sqlSessionFactory.openSession(); // 创建SqlSession
// 执行查询操作
List<User> userList = sqlSession.selectList("com.example.UserMapper.getAllUsers");
// 处理查询结果
for (User user : userList) {
System.out.println(user.getId() + " - " + user.getName());
}
sqlSession.commit(); // 提交事务
} catch (Exception e) {
sqlSession.rollback(); // 回滚事务
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close(); // 关闭SqlSession
}
}
}
}