SqlSessionFactoryBuilder
常
API
:
SqlSessionFactory build(InputStream inputStream)
通过加载
mybatis
的核件的输流的形式构建个
SqlSessionFactory
对象
//加载核配置件 SqlMapConfig.xml
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
//构造SQLSessionFactory对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
其中,
Resources
具类,这个类在
org.apache.ibatis.io
包中。
Resources 类帮助你从类路径下、件系统或个 web URL 中加载资源件。
SqlSessionFactory
SqlSessionFactory
是个接,接中定义了
openSession
的不同重载法
; SqlSessionFactory 是线程安全的
,
且
SqlSessionFactory的最佳使范围是整个应运期间,旦创建后可以重复使,通常以单例模式管理
SqlSessionFactory
。
|
法
|
含义
| |
openSession()
|
会默认开启个事务,但事务不会动提交
,也就意味着需要动提交该事务
,
更新操作数据才会持久化到数据库中
| |
openSession(boolean
autocommit)
|
参数为是否动提交
,
如果设置为
true,
那么不需要动提交事务
|
A. 通过SqlSessionFactory 获取个SqlSession;
SqlSession sqlSession = sqlSessionFactory.openSession();
B. 通过SqlSessionFactory 获取个可以动提交的 SqlSession;
SqlSession sqlSession = sqlSessionFactory.openSession(true);
SqlSession
SqlSession
是个向户(程序员)的接,
sqlSession中定义了数据库操作法。每个线程都应该有它的
SqlSession
实例。
SqlSession的实例不能共享使,它也是线程不安全的。因此最佳的范围是请求或法范围。绝对不能将SqlSession实例的引放在个类的静态字段或实例字段中。打开个
SqlSession
;使完毕就要关闭它。通常把这个关闭操作放到
finally 块中以确保每次都能执关闭
执语句的法主要有:
<T> T selectOne(String statement, Object parameter) ;
<E> List<E> selectList(String statement, Object parameter) ;
int insert(String statement, Object parameter)
int update(String statement, Object parameter)
int delete(String statement, Object parameter)
操作事务的法主要有:
void commit() ;
void rollback() ;
|