显示sqlsession已关闭

显示sqlsession已关闭

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

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


但是如果去掉finally 就可以运行了,但是不知道什么时候关闭连接合适

正在回答

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

2回答

你可以参考下图代码,我在代码中做了注释,整个流程就是,获取sqlSession->执行sql语句->关闭sqlSession,这是一个流程,当执行最下面的findById方法时,也是这个流程,获取sqlSession->执行sql语句->关闭sqlSession。如果有不明白的地方,同学可以再次提问,祝学习愉快~

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

  • 慕丝2567851 提问者 #1
    为什么把这段话放到get方法中就可以执行了,而放到属性,再由userDAO实例化打开链接却不行,请问原理是什么
    2018-10-17 19:30:40
chrismorgen 2018-10-17 10:47:39

每次执行完一条sql语句时,在finally中关闭SqlSession就可以了,当下一次执行sql语句时,还需要使用下图代码来获取sqlSession,否则就会出现截图中的报错,造成错误的原因是你使用完sqlSession并关闭了,但是当再次使用时,就需要将sqlSession开启了,否则就会出现Executor was closed的错误。如果我的建议解决了你的问题,请采纳,祝学习愉快~

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

  • 提问者 慕丝2567851 #1
    在哪里加这条语句呢
    2018-10-17 10:49:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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