首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

SSH 整合之 Hibernate 核心配置:映射文件、SessionFactory 與 CRUD 操作

     編輯:Java 綜合教學

Hibernate 在 SSH 中的持久層配置指南

Hibernate 是 ORM 框架,將數據庫表映射為 Java POJO,底層仍基於 JDBC。本文記錄配置文件編寫、映射定義與基本 CRUD 代碼。

一、Jar 包導入

從官網下載 hibernate-release-5.2.2.Final,導入 lib/required/ 所有 jar,可選 lib/optional/c3p0/ 連接池 jar。
Hibernate Jar包

二、hibernate.cfg.xml 核心配置

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "https://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <!-- 數據庫連接 -->
    <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    <property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=webLastExam_20160727</property>
    <property name="connection.username">sa</property>
    <property name="connection.password">password</property>
    <!-- Hibernate 方言 -->
    <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
    <!-- 連接池大小 -->
    <property name="connection.pool_size">5</property>
    <!-- SQL 輸出 -->
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <!-- DDL 策略 -->
    <property name="hbm2ddl.auto">update</property>
    <!-- 映射文件 -->
    <mapping resource="entity/BookCard.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

關鍵點: 將數據庫連接信息從 Java 代碼剝離到配置文件,便於環境遷移;hbm2ddl.auto=update 自動更新表結構(create 會清空數據)。

三、映射文件 (BookCard.hbm.xml)

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "https://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="entity.BookCard" table="t_book_card">
    <id name="id" type="integer">
      <column name="id"/>
      <generator class="native"/>
    </id>
    <property name="bookName" type="string">
      <column name="book_name"/>
    </property>
    <!-- 其他屬性映射 -->
  </class>
</hibernate-mapping>

映射文件截圖

  • class.name:全限定實體類名。
  • id:主鍵映射,generator class="native" 根據底層數據庫自動選擇主鍵生成策略。
  • property:普通字段映射,指定 Hibernate 類型(string、integer、date 等)。

四、DAO 中使用 SessionFactory

// 1. 創建 SessionFactory(配置文件名非默認時需指定)
SessionFactory sf = new Configuration().configure("mySQLHibernate.cfg.xml").buildSessionFactory();
// 2. 打開 Session
Session session = sf.openSession();
// 3. CRUD 示例:查詢所有
Query query = session.createQuery("from BookCard");
List<BookCard> list = query.getResultList();

五、Spring 整合方向(下一步)

生產環境建議將 SessionFactory 交給 Spring 管理,通過 LocalSessionFactoryBean 在 applicationContext.xml 中定義,DAO 注入 SessionFactory 或使用 HibernateTemplate。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved