码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate框架中的HibernateUtil

时间:2015-06-10 10:33:26      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

对于刚学习三层框架的人来说,每一个配置文件和每一个类,以及功能来说都很新鲜,时常就忘记了相关类的功能。

在这里建议编程就是要多加练习,才能熟能生巧。

这里说一下HibernateUtil类,在使用Hibernate的前提是需要去下载Hibernate项目,然后在lib文件夹下面把所有的. jar 包

COPY到你项目的lib文件夹下。

什么是HibernateUtil类,或者是说有什么功能?


Hibernate框架,主要解决的就是项目于数据库连接相关的问题,然而主要实现是需要靠配置文件中的代码与

类进行映射,才可以实现具体的功能。

那么HibernateUtil就是把代码读取配置文件的功能提取出来,因为每次读取操作都很费时,这样一次就可以读取完毕。

属于把一种功能抽象出来。这些代码是非常耗时的,我们希望它只做一次,一般我们希望它只做一次,我们去做一个工具类去初始化
hibernate。工具类一般不希望被继承,别人来改写我的东西,一般用finally

   

<span style="font-size:18px;"> //加载配置文件信息默认为hiberna.cfg.xml,如果不是的话那么就在config()方法里面去解析他
     Configuration config = new Configuration();
     config.config();
     //创建工厂
     SessionFactory factory = config.bulidSessionFactory();
     //得到session
     Sesssion session  = factory.opensession();
     //创建对象
     
     public finally HibernateUtil(){
       private static SessionFactory sessionFactory=null;
       //私有的构造方法,防止别人new出来,典型的单例设计模式的引用
        priavate HibernateUtil(){
            }
        static {
  Configuration cfg = new Configuration();
  cfg.configure();
  sessionFactory = cfg.buildSessionFactory();
 }  
    public static SessionFactory getSessionFactory() {
      return sessionFactory;
 }


 public static Session getSession(){
  return  sessionFactory.openSession();
   }


   cfg.configure()这句话就会去读hibernate.cfg.xml里面的配置文件.如果你的配置文件不叫


hibernate,cfg.xml,你就要用cfg.configure("filename")来指定你需要的配置文件。我们可以查看源代码。在


使用cfg.configure()时:
 public Configuration configure() throws HibernateException {
  configure( "/hibernate.cfg.xml" );
  return this;
 }


会把hibernate.cfg.xml传进去,eclipse会在哪里去找这个hibernate.cfg.xml这个文件呢?会在classpath中去


找这个文件。src这个目录不是classpath,但是它为什么可以找的到呢?因为scr目录最终都会编译到


classpath中去。session就类似与jdbc的connection.


     ibernate 中先对来说比较规范的一个添加一个对象的写法
 static void addPerson(Person person) {
  Session session = null;
  Transaction tx = null;
  try {
   session = HibernateUtil.getSession();
   tx = session.beginTransaction();
   session.save(person);


  } catch (HibernateException e) {
   if (tx != null)
    tx.rollback();
   throw e;  //这个时候最好是把异常抛出去,因为如果只是回滚的话,就没有任何提示给调用者。
  } finally {
   session.close();
  }
}</span>


Hibernate框架中的HibernateUtil

标签:

原文地址:http://blog.csdn.net/u012965373/article/details/46437439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!