sqlSession报错

sqlSession报错

http://img1.sycdn.imooc.com//climg/5b8e4d3300017fed15080591.jpg

按照这个方式生成sqlSession,会报错。错误如下:

http://img1.sycdn.imooc.com//climg/5b8e4d86000133bd05000380.jpg

然后按照源代码,修改了方式就可以了。

http://img1.sycdn.imooc.com//climg/5b8e4dc00001a6a517591047.jpg

为什么会这样,为什么老师演示的时候没有问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
chrismorgen 2018-09-04 18:17:18

逻辑是不一样的,如下图所示,你在UserDao中只创建了一次sqlSession,

http://img1.sycdn.imooc.com//climg/5b8e5a1e000138e010790089.jpg

但是你执行findUsers之后就将sqlSession关闭了,所以会出错了,因为sqlSession还会被使用,

http://img1.sycdn.imooc.com//climg/5b8e5a4e0001450607220335.jpg

所以将sqlSession封装到getSession方法中,每次执行UserDao中的方法时,都会使用getSession来获

去sqlSession,

http://img1.sycdn.imooc.com//climg/5b8e5a9000010e6c08990169.jpg

总而言之,老师的sqlSession代码逻辑是打开-关闭-打开-关闭,而你的是打开-关闭-关闭,所以就会出错了,建议同学参照老师的视频来理解,祝学习愉快~

  • 提问者 李爽爽爽爽 #1
    谢谢老师,我还想请问一下,除了userDAO里面生成和关闭了一次,还有哪里会再次打开和关闭~
    2018-09-04 20:47:39
  • chrismorgen 回复 提问者 李爽爽爽爽 #2
    sqlSession指的是与数据库的会话,当与数据库建立连接并执行sql时,会用到,当结束会话时,就需要将sqlSession关闭,了解了使用场景,就可以知道sqlSession一般都是在dao层执行sql时使用的。祝学习愉快~
    2018-09-05 10:00:57
提问者 李爽爽爽爽 2018-09-04 17:25:52

https://class.imooc.com/course/qadetail/67026

图二详见上方连接


另外,请问一下,图三中的方法为什么可以直接用?谢谢

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师