springmvc中 sessionfactory到底是什么 知乎
1,Spring中设置的SessionFactory的bean如何产生hibernate需要的SessionFactory呢,
在配置文件中,SessionFactory的class属性为org.springframework.orm.hibernate3.LocalSessionFactoryBean
如果用到标注产生model的情况,则SessionFactory的class属性为:
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
LocalSessionFactoryBean如何生成SessionFactory的呢。
setDataSource方法获得容器注入的数据源(DataSource)。
buildSessionFactory方法通过读取配置文件属性生成Configuration对象。Configuration的buildSessionFactory方法生成了SessionFactory对象。
org.hibernate.SessionFactory是SessionFactory接口类。
openSession(Connection connection)
openSession(Interceptor interceptor)
openSession(Connection connection, Interceptor interceptor);
openSession()
getCurrentSession()
这些方法获得Session。org.hibernate.impl.SessionFactoryImpl是SessionFactory接口类的实现。
org.hibernate.Session是Session接口。org.hibernate.impl.SessionImpl接口的实现。
getSession(EntityMode entityMode) 获得Session.
clear()清空
Connection close()关闭Session。
Connection connection()
Connection disconnect()
saveOrUpdate(Object object)
void save(Object obj, Serializable id)
通过这些方法可以操作数据库。
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean类是从 LocalSessionFactoryBean继承而来,依赖于hibernate的Annotation插件。jdk必须大于等于5.0。