码迷,mamicode.com
首页 > 数据库 > 详细

06_关于SqlSession

时间:2016-07-24 00:16:16      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

一.SqlSession适用范围

(1).SqlSessionFactoryBuilder

通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

将SqlSessionFactoryBuilder当成一个工具类使用,无需单例模式管理SqlSessionFactoryBuilder。

在需要创建SqlSessionFactory时,只需new一次SqlSessionFactoryBuilder即可。

 //mybatis配置文件
 String resource="SqlMapConfig.xml";
       
 //得到配置文件
 InputStream inputStream=Resources.getResourceAsStream(resource);
        
//创建会话工厂,传入mybatis的配置文件信息
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);

(2)SqlSessionFactory

通过SqlSessionFactory创建SqlSession,使用单例模式管理SqlSessionFactory(工厂一旦创建,使用一个单例)

(MyBatis与Spring整合后,使用单例模式管理SqlSessionFactory)

//通过工厂得到SqlSession
SqlSession sqlSession=sqlSessionFactory.openSession();

(3)SqlSession

SqlSession是一个面向用户(软件工程师)的接口。

SqlSession中提供了许多操纵数据库的方法,如:

selectOne():返回单个对象

selectList():返回当个或多个对象

.....

SqlSession是线程不安全的,在SqlSession实现类中除了接口中的方法(操作数据库的方法),还有数据域属性。

SqlSession最佳应用场合在方法体内,定义成局部变量使用。

//通过SqlSession操作数据库
//第一个参数:映射文件中statement的id,等于:namespace+"."+statement的id
//第二个参数:指定映射文件中的所匹配的parameterType类型的参数
User user=sqlSession.selectOne("test.findUserById", 2);
//删除用户
sqlSession.delete("test.deleteUserById",2);
//插入数据,后返回id
sqlSession.insert("test.insertUserReturnId",user);
//更新数据
sqlSession.update("test.updateUserById",user);

 

06_关于SqlSession

标签:

原文地址:http://www.cnblogs.com/HigginCui/p/5699856.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!