关于hibernate的SessionFactory和Session的使用问题 hibernate事务sessionSessionFactory性能 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SessionFactory本身就不用关闭的,这个是创建session的工厂,对于session才需要close 我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不? 我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不?sessionFactory不需要一直创建。构建sessionFactory是很费时的,他需要解析hibernate的配置文件,以及JPA注解。我们操作时都是用session,只有你整个项目都不用了才把sessionFactory关闭。 把SessionFactory弄成单例的,让它一直开着吧 我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不?sessionFactory不需要一直创建。构建sessionFactory是很费时的,他需要解析hibernate的配置文件,以及JPA注解。我们操作时都是用session,只有你整个项目都不用了才把sessionFactory关闭。这样说的话,那SessionFactory的是应该怎么创建比较好呢?我获取SessionFactory就放在start()方法里,那么每次Dao操作一个方法就会调用一次,那不就是一直在创建了呢?还是说SessionFactory本身被创建一次后就存在于整个项目的作用范围内被所有用户使用,其它调用start()方法的用户都能自动获取已经被创建的这个SessionFactory对象? 因为我在想每次Dao操作调用一个方法都会使用到一次创建SessionFactory的操作,那不关闭不会越创建越多吗? 你可以把SessionFactory的创建写在专门的类中可以叫HibernateUtils里面用getSessionFactory获取SessionFactory,而这个SessionFactory应该是单例的。那么dao只要用HibernateUtils.getSessionFactory()就可以了public class HibernateUtils{ private static SessionFactory sessionFactory; static{ sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory(); } public static SessionFactory getSessionFactory(){ return sessionFactory; }} 你可以把SessionFactory的创建写在专门的类中可以叫HibernateUtils里面用getSessionFactory获取SessionFactory,而这个SessionFactory应该是单例的。那么dao只要用HibernateUtils.getSessionFactory()就可以了public class HibernateUtils{ private static SessionFactory sessionFactory; static{ sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory(); } public static SessionFactory getSessionFactory(){ return sessionFactory; }}原来如此,是单例模式让它的创建对象在应用中只保持一个。茅塞顿开!非常感谢你的指点! jsp会话跟踪 请老手解释概念。java的功能模块 关于在 IF()中能否用表达式语言 哪个高手给看下这个程序呢!那里出错了! 关于Java IO 输出时编码转换的问题,请大家帮忙。 jsp中页面传递参数给servlet怎么接收不到呢 HOW TO在BOLG 中加入时间,日期,时钟(100高分求高手) 刚学习jsp,请帮忙! 数据类型如何转换?(新手,啥也不会)(^_^) Servlet的Flush Buffer()问题!困惑中 The requested resource is not available. 关于JAVA WEB方面的
我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不?
我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不?
sessionFactory不需要一直创建。构建sessionFactory是很费时的,他需要解析hibernate的配置文件,以及JPA注解。我们操作时都是用session,只有你整个项目都不用了才把sessionFactory关闭。
我得到SessionFactory是new AnnotationConfiguration().configure().buildSessionFactory()本身也有提供close()方法。那如果不关闭,那这个本身不是越创建越多吗?或者说它这样被创建后一直存在对性能有和影响不?
sessionFactory不需要一直创建。构建sessionFactory是很费时的,他需要解析hibernate的配置文件,以及JPA注解。我们操作时都是用session,只有你整个项目都不用了才把sessionFactory关闭。这样说的话,那SessionFactory的是应该怎么创建比较好呢?我获取SessionFactory就放在start()方法里,那么每次Dao操作一个方法就会调用一次,那不就是一直在创建了呢?还是说SessionFactory本身被创建一次后就存在于整个项目的作用范围内被所有用户使用,其它调用start()方法的用户都能自动获取已经被创建的这个SessionFactory对象?
因为我在想每次Dao操作调用一个方法都会使用到一次创建SessionFactory的操作,那不关闭不会越创建越多吗?
private static SessionFactory sessionFactory;
static{
sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
private static SessionFactory sessionFactory;
static{
sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
原来如此,是单例模式让它的创建对象在应用中只保持一个。茅塞顿开!非常感谢你的指点!