Mybatis之SqlSession
在MyBatis中,SqlSession
是核心API的一部分,它是与数据库交互的主要接口。你可以通过SqlSession
执行命令,获取映射器实例和管理事务。
以下是一个使用SqlSession
的基本示例:
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class MyBatisExample {
public static void main(String[] args) {
// 配置文件的路径
String resource = "org/mybatis/example/mybatis-config.xml";
// 从类路径获取配置文件输入流
InputStream inputStream = null;
SqlSession sqlSession = null;
try {
inputStream = Resources.getResourceAsStream(resource);
// 创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 打开一个SqlSession
sqlSession = sqlSessionFactory.openSession();
// 执行SQL语句
// 例如,你有一个映射器接口ExampleMapper,并且有一个对应的select语句叫selectByExample
// ExampleMapper mapper = sqlSession.getMapper(ExampleMapper.class);
// List<YourEntity> results = mapper.selectByExample(null);
// 处理结果...
// 提交事务
sqlSession.commit();
} catch (Exception e) {
if (sqlSession != null) {
sqlSession.rollback(); // 出现异常,回滚事务
}
e.printStackTrace();
} finally {
// 关闭SqlSession
if (sqlSession != null) {
sqlSession.close();
}
// 关闭输入流
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
在这个例子中,我们首先获取MyBatis配置文件的输入流,然后通过SqlSessionFactoryBuilder
创建SqlSessionFactory
,再通过SqlSessionFactory
打开一个SqlSession
。之后,我们可以通过SqlSession
获取映射器实例来执行数据库操作,并在最后关闭SqlSession
以及释放资源。注意,在处理事务时,你应该捕获异常,并在出现异常时回滚事务。
评论已关闭