请问不是每次访问detail路径时,都会重新创建UserDAO对象吗?

请问不是每次访问detail路径时,都会重新创建UserDAO对象吗?

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

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

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

为什么不能重新创建sqlSession,而要用后面的方式,在方法里面创建sqlSession呢?

正在回答

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

2回答

同学你好,在第一次使用UserDao对象时创建UserDao对象,但是并没有创建sqlSession对象。sqlSession对象是在使用时创建,每次使用完毕后都将其关闭了,而UserDao对象没有关闭。如果第二次访问,不会实例化UserDao对象,但是如果不实例化sqlSession对象,将会报错。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕阿满 2019-07-25 13:54:33

同学你好,不是每次访问detail时,都会重新创建UserDAO对象。关于SqlSession,每调用完成一个方法,都会将其关闭,再次调用sqlSession,如果不是通过getSession()方法重新实例化一个sqlSession对象,而是使用之前关闭的sqlSession,就会报错。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 蒙特卡洛 #1
    你好,请问意思是不是说,UserDAO只在第一次访问detail时创建(同时创建SqlSession),第一次访问完后会将SqlSession关闭。之后再访问时detail时,由于之前的UserDAO对象没有销毁,还存在就不创建了,直接执行后面,进入findById()方法,这样也就无法再次创建SqlSession。 而放在getSession()方法中创建,则可以在每次调用findById()方法时重新创建SqlSession对象。 其实关键就是说UserDAO对象是不是只在第一次创建,之后都存在,除非专门被销毁,否则不会再创建了?
    2019-07-25 14:04:00
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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