MyBatis中的SqlSessionFactory和SqlSession


SqlSessionFactory

SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像。

SqlSessionFactory对象实例可以通过SqlSessionFactoryBuilder对象获得。

而SqlSessionFactoryBuilder则可以通过从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。

每一个MyBatis的应用都以一个SqlSessionFactory对象的实例为核心。SqlSessionFactory是创建SqlSession的工厂。

SqlSession

SqlSession是执行持久化操作的对象,类似于JDBC中的Connection。是应用程序与持久存储层之间执行交互操作的一个单线程对象。

SqlSession对象包含完全以数据库为背景的左右执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来执行已映射的SQL语句。

每个线程都应该有它自己的SqlSession实例,SqlSession的实例不能被共享,也是线程不安全的。

 

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
User user = new User();
user.setName("ss");
user.setSex("男");
user.setAge(123);
session.insert("mapper.UserMapper.save", user);
session.commit();
session.close();

 初始化步骤:

1、调用SqlSessionFactoryBuilder对象的build(inputStream)方法。

2、SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象。

3、SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法。

4、XMLConfigBuilder对象解析XML配置文件返回Configuration方法。

5、SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象。

6、SqlSessionFactoryBuilder返回DefaultSessionFactory对象给客户端,供客户端使用。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM