mybatis 中 sqlSession = factory.openSession(); sqlSession是啥?

问题一:sqlSession到底是个什么东西,用sqlSession.selectOne(),执行查询比传统的jdbc减少了哪些步骤?SqlSessionsqlSessi... 问题一:sqlSession到底是个什么东西,用sqlSession.selectOne(),执行查询比传统的jdbc减少了哪些步骤?
SqlSession sqlSession = null;
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
sqlSession = factory.openSession();

问题二:用传统jdbc的时候,可以通过Druid获取连接对象,然后把这个对象放到ThreadLocal中。要用的时候,可以从ThreadLocal中返回一个连接副本,再通过这个连接对象执行具体的sql语句。prep = 连接对象.prepareStatement(sql); 但是用mybatis时,怎么使用数据库连接池和ThreadLocal?? 可以把sqlSession放到ThreadLocal中吗?如果这样,连接池岂不是没用了?

问题三:以上的说明我的理解是否有错?

新手求救各路大神,跪谢了
答案能解决问题,会追加积分的。
展开
 我来答
ijava学习网
2018-07-10 · 国内最优秀java资源共享平台
ijava学习网
国内最优秀的java免费资源共享及学习平台,专注从实战中学习与成长。主要包括教程、经验分享、知识、资讯、工具、手册、视频及各种资源下载。
向TA提问
展开全部
1、这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。

2、因此 SqlSessionFactoryBuilder 实例的最佳范围是方法范围(也就是局部方法变量)。

3、你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,
但是最好还是不要让其一直存在以保证所有的 XML 解析资源开放给更重要的事情。

4、SqlSessionFactory 一旦被创建就应该在应用的运行期间一直存在,没有任何理由对它进行清除或重建。

5、使用 SqlSessionFactory 的最佳实践是在应用运行期间不要重复创建多次,
多次重建 SqlSessionFactory 被视为一种代码“坏味道(bad smell)”。

6、因此  SqlSessionFactory 的最佳范围是应用范围。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。
蓝忆枫烁
2018-06-24 · TA获得超过131个赞
知道小有建树答主
回答量:760
采纳率:30%
帮助的人:103万
展开全部
创建会话工厂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式