分享知识-快乐自己:搭建第一个 Hibernate (Demo)

 

使用 Hibernate 完成持久化操作 七大 步骤:

1、读取并解析配置文件及映射文件:

  Configuration configuration=new Configuration().configure();

根据默认位置的 Hibernate 配置文件中的信息,构建 Configuration  对象。 Configuration  负责管理 Hibernate  的配置信息。

2、依据配置文件和映射文件中的信息,创建 SessionFactory 对象;

  SessionFactory sessionFactory=configuration.buildSessionFactory();

Configuration 对象会根据当前的数据库配置信息, 构造 SessionFactory 对象。SessionFactory 对象一旦构造完毕,Configuration 对象的任何变更不会影响已经创建的 SessionFactory 对象。

如果 Hibernate 配置信息有改动,那么需要基于改动后的 Configuration 对象重新构建一个 SessionFactory 对象。

3、打开 Session ;

  Session  session=sessionFactory.getCurrentSession(); 或 sessionFactory.openSession();

SessionFactory 负责创建 Session 对象。Session 是持久化操作的基础。Session 作为贯穿 Hibernate 的持久化管理的核心,提拱了众多持久化方法,如 save()、delete()、update()、get()、load()等...

通过这些方法,即可透明地完成对象的 增删改查(CRUD)

4、开始一个事务;

  Tansaction tx = session.beginTansaction();

5、数据库操作;

  session.save();//保存操作

6、结束事务;

  tx.commit();//提交事务  或 回滚事务

7、如果是通过 SessionFactory 的 openSession() 方法获取的 Session 对象,则需要关闭 session。

  session.close();

提示:如果在 Hibernate 配置文件中将参数 current_session_context_class 设置为 thread,并采用 SessionFactory 的 getCurrentSession()方法 获得 Session 对象。

   则不需要执行 session.close() 方法,通过这种方式获得的Session 对象,会在关联的事务结束(提交或回滚)时自动关闭。

更新数据的方法:

 1): update() 方法,用于将游离的对象恢复为持久状态,同时进行数据库更新操作。当参数对象的 OID 为 null 时会报错异常

 2):saveOrUpdate()方法,同时包含了save()与update()方法的功能,如果入参是瞬时状态的对象,就调用 save()方法;如果入参是游离状态的对象,则调用update()方法。

3):merge()方法,能够把作为参数传入的游离状态对象的属性 复制到一个拥有相同 OID 的持久状态对象中,通过对持久状态的对象的脏检查实现更新操作,并返回该持久状态对象;

    如果无法从Session 缓存或数据库中加载到相应的持久状态对象,即传入的是瞬时对象,则创建其副本执行插入操作,并返回这一新的持久状态对象。无论何种情况,传入的对象状态都不受影响。

案例目录结构:

1):环境搭建前期准备:

目前以及后期需要的 JAR:

复制代码
  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.3</version>    </dependency>    <!-- 添加Hibernate依赖 -->    <dependency>      <groupId>org.hibernate</groupId>      <artifactId>hibernate-core</artifactId>      <version>3.6.10.Final</version>    </dependency>    <!-- 添加Log4J依赖 -->    <dependency>      <groupId>log4j</groupId>      <artifactId>log4j</artifactId>      <version>1.2.16</version>    </dependency>    <dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-nop</artifactId>      <version>1.6.4</version>    </dependency>    <!-- 添加javassist -->    <dependency>      <groupId>javassist</groupId>      <artifactId>javassist</artifactId>      <version>3.12.0.GA</version>    </dependency>    <dependency>      <groupId>org.hibernate.javax.persistence</groupId>      <artifactId>hibernate-jpa-2.0-api</artifactId>      <version>1.0.1.Final</version>    </dependency>    <dependency>      <groupId>javax.transaction</groupId>      <artifactId>jta</artifactId>      <version>1.1</version>    </dependency>    <!-- mysql数据库的驱动包 -->    <dependency>      <groupId>mysql</groupId>      <artifactId>mysql-connector-java</artifactId>      <version>5.1.6</version>    </dependency>  </dependencies>  <build>    <!--  加载我们的各种hbm.xml文件,如果hbm.xml文件在resources文件夹下面就不需要了-->    <resources>      <resource>        <directory>src/main/java</directory>        <includes>          <include>**/*.xml</include>         </includes>       </resource>     </resources>   </build>
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信