早教吧 育儿知识 作业答案 考试题库 百科 知识分享

javagetCurrentSession与openSession区别据介绍:getCurrentSession可以根据上下文来决定到底需不需要新建一个session,openSession是一定会新建一个那么Sessionsession=sf.getCurrentSession();Sessionsession1=sf.getCurren

题目详情
javagetCurrentSession与openSession区别据介绍:getCurrentSession可以根据上下文来决定到底需不需要新建一个session, openSession是一定会新建一个 那么Sessionsession=sf.getCurrentSession(); Sessionsession1=sf.getCurrentSession(); System.out.print(session.equals(session1)); 为什么是false?按理说是指向同一个Session对象应该是true啊! 还有System.out.print(session==session1);怎么就输出true了?? “==”不是比较引用(引用的地址)吗?一个是session一个是session1 怎么就true了呢??
▼优质解答
答案和解析
getCurrentSession的话会自动关闭,而openSession需要你手动关闭。 如果你正在查询,使用的openSession而没有手动关闭,多次之后会导致连接池溢出,系统会挂掉的~ session==session1虽然它们的别名是不一样的,但是指向同一块内存空间的,若如你所说应该是不一样,那内存中就会有2个一样的内存空间咯?那这样也不好管理的哦