`

Hibernate中HibernateUtil

 
阅读更多


Configuration cfg=new Configuration();
cfg.configure();
SessionFactory sf=cfg.buildSessionFactory();
这些代码是非常耗时的,我们希望它只做一次,一般我们希望它只做一次,我们去做一个工具类去初始化hibernate。工具类一般不希望被继承,别人来改写我的东西,一般用finally.

 

package net.cnlib.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public final class HibernateUtil {
 private static SessionFactory sessionFactory=null;
 private 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就类似与jdbcconnection.

 

 

Hibernate 中先对来说比较规范的一个添加一个对象的写法

 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();
  }
 }

 

 

分享到:
评论

相关推荐

    06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门

    06_传智播客hibernate教程_完善HibernateUtil类及hql查询入门

    HibernateUtil.java Hibernate5.2.1

    Hibernate5.2.1 的工具类 创建session 和 sessionFactory

    hibernate入门实例封装了HibernateUtil

    hibernate入门实例封装了HibernateUtil,完成数据库的添加操作,和查询操作。 Session的save方法和get方法。

    HibernateUtil 分页 增删改查 封装

    HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装 HibernateUtil 分页 增删改查 封装

    HibernateUtil

    管理hibernate的session sessionFactiory的实现类

    HibernateUtil分装完整版HQL查询

    HibernateUtil分装完整版HQL查询HibernateUtil分装完整版HQL查询

    Hibernate5快速学习步骤

    本章学习目标  Hibernate 初认识  Hibernate 的HelloWorld  hibernate.cfg.xml 配置详解  *.hbm.xml 对象映射文件详解  Hibernate 核心接口... 抽取HibernateUtil 工具类  使用Session 接口进行增删改查

    传智播客李勇hibernate源码1-20课

    06_完善HibernateUtil类及hql查询入门 07_实体类或属性名与数据库关键字冲突问题 10_使用Hibernate完成CRUD实验的步骤说明 11_完成CRUD实验并回顾和补充细节知识(上) 12_完成CRUD实验并回顾和补充细节知识(下...

    hibernate one-to-one 一对一唯一外键关联映射_单向 and 双向

    在本文中,我们将详细介绍Hibernate一对一唯一外键关联映射的概念、配置方法和实践应用。 一对一唯一外键关联映射的概念 在Hibernate中,一对一唯一外键关联映射是指两个实体之间的关联关系,其中一个实体作为外键...

    基于泛型的通用Dao接口和hibernate的实现

    3. 代码重用性高:泛型Dao接口可以在不同的项目中重用,减少代码冗余。 Hibernate对泛型Dao接口的实现: Hibernate 是一个流行的持久层框架,可以与泛型Dao接口集成,实现数据访问的持久化。 Hibernate 对泛型Dao...

    2023年hibernate知识点详解王成敏.doc

    Hibernate 的映射是将 Java 对象映射到关系数据库表中。映射文件的扩展名为 *.hbm.xml。下面是一个简单的映射文件的示例: ```xml <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0/...

    Hibernate工具类

    HibernateUtil工具类,封装了Hibernate的事务,增,删,改,查,以及分页的方法!

    15hibernate_day04_pm_v1.zip_K.

    生成HibernateSessionFactory工具类(HibernateUtil) ===利用Myeclipse根据表生成实体类和映射文件=== g.进入DB Browser窗口,找到数据表 h.数据表右键,选择Hibernate reverse Engin... i.选择要生成的文件hbm....

    封装了一个Hibernate增删改查的工具类

    一个工具类实现了增删改查 util comm.util beanutils 方便了获取session和sessionFactory

    hibernate 一对多测试工程

    hibernate 一对多测试工程,博客介绍请参照: http://blog.csdn.net/smilefyx/article/details/48596665

    Hibernate4_Inheritance_Annotation:该程序演示了如何使用 Annotations 在 Hibernate 中使用继承

    该程序演示了如何使用 Annotations 在 Hibernate 中使用继承。 Hibernate 支持 3 种类型的继承 每个具体类一个表 - 每个子类都有一个表,该表也具有超类的所有属性。 (TABLE_PER_CLASS) 每个层次结构类一个表 - ...

    MyEclipse_Hibernate

    HibernateUtil タ・ <br>ミツスィメサタ・HibernateUtil」ャモヲクテハヌクコヤテ hibernate マ犹リイルラ」 ユ簑・メハヌエモヤュタエオトケ、ウフヨミスォホトシヨアスモソスアエタエモテ。」 ...

    java util工具类

    HibernateUtil.java HibernateUtils.java HttpRequester.java HttpRespons.java HttpUtil.java MD5Util.java Pagination.java PropertiesUtil.java RegUtil.java StringUtil.java UploadUtil.java UUIDUtils.java

Global site tag (gtag.js) - Google Analytics