MyBatis核心接口和类的功能简介说明
下文笔者讲述Mybatis核心接口和类的简介说明,如下所示
MyBatis框架核心对象
MyBatis框架中核心对象:
包括核心接口和类
SqlSessionFactory实例
属于MyBatis框架应用程序的核心。
SqlSessionFactory实例
由SqlSessionFactoryBuilder对象
通过XML配置文件或Configuration类的实例进行创建
SqlSession实例:
使用SqlSessionFactory实例可获得SqlSession实例
包括执行SQL操作的方法
可以同过该实例执行已映射的SQL语句
SqlSessionFactoryBuilder
SqlSessionFactoryBuilder:
负责根据配置文件信息构建SqlSessionFactory实例
SqlSessionFactoryBuilder提供多种builder()重载方法
如下所示:
builder(Reader reader, String environment, Properties properties)
builder(InputStream inputStream, String environment, Properties properties)
builder(Configuration config)
SqlSessionFactory
使用SqlSessionFactoryBuilder构建SqlSessionFactory实例
是MyBatis框架应用的核心
SqlSessionFactory是创建SqlSession实例的工厂
SqlSessionFactory提供了openSession()方法来获取SqlSession实例。
openSession(boolean 参数)方法:
参数等于true时,表示自动提交事务,关闭事务控制
false,表示关闭自动提交,开启事务控制
注意事项:
在实际使用中,不建议反复销毁和创建SqlSessionFactory实例
SqlSessionFactory实例一旦创建就应该在应用的运行周期中始终存在。
MybatisUtil编写
public class MyBatisUtil {
private static String CONFIG_FILE = "mybatis-config.xml";
private static SqlSessionFactory factory;
static {
try {
InputStream stream = Resources.getResourceAsStream(CONFIG_FILE);
factory = new SqlSessionFactoryBuilder().build(stream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return factory.openSession();
}
public static void close(SqlSession sqlSession){
if (sqlSession!=null){
sqlSession.close();
}
}
}
SqlSession
SqlSession:
用于执行持久化操作
它提供数据执行SQL命令的能力
使用SqlSession提供的方法运行已映射的SQL语句
SqlSession指一次数据库会话
SqlSession实例是非线程安全的,不能被共享,
每个线程都应该使用自己独立的SqlSession实例,
SqlSession实例的生命周期不应该是永久的
SqlSessionFactoryBuilder执行绑定的SQL语句有两种方式
基于字符串常量
该方法有类型转换的问题
Integer result = sqlSession.selectOne("com.java265.count");
System.out.println("count = " + result);
基于Mapper接口
推荐使用Mapper接口
无需进行类型转换
User user = sqlSession.getMapper(User.class);
Integer count = user.count();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


