SessionFactory是一个计算机语言,指的是负责创建Session的核心接口,它充当数据存储源的代理,并负责创建Session对象。
1.sessionFactory 是什么
Hibernate的核心接口之一 SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
2.sessionFactory 作用
用于管理Hibernate会话(session)的对象,所以,最最最简单的理解,你可以把sessionFactory想想成里面有一个DataSource;这个对象创建了,hibernate才真正和数据库连接上了。即SessionFactory维护着所有连接对象已经连接对象的分配和销毁;SessionFactory是线程安全的,并且创建和销毁需要消耗比较大的资源,所以整个应用里面针对一个数据库只需要一个SessionFactory即可;
SessionFactory管理着配置在其中的映射对象的解析数据,动作监听器,NamedQuery等大量信息;
sessionFactory的相关方法返回session对象,而不是平常的new关键字创建session
3.ssionFactory 使用方法
/**
*@param str
*@param int
*更新String类型的字段
*/
public int updateDm_bm(String str){
int resu=0;
//获取会话工厂
SessionFactory sf=this.getSessionFactory();
//获取SessionFactory的会话
Session session=(Session)this.getSessionFactory().getCurrentSession();
sf.openSession();
//开始事务
Transaction t=session.beginTransaction();
Query query =session.createQuery(str);
//提交事务
resu=query.executeUpdate();
// Query.executeUpdate()方法返回的整型值表明了受此操作影响
return resu;
}
此方法如果传入一条数据修改语句。就可以直接执行返回成功与否的结果。
而此处的SessionFactory一旦声明,就不必去顾及数据库连接的问题,很方便。
评论
查看更多