Hibernate源码解析
生活随笔
收集整理的這篇文章主要介紹了
Hibernate源码解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Hibernate源碼解析
一、先在官網 https://sourceforge.net/projects/hibernate/ 下載最新版本的開發包
下載解壓后
- documentation存放Hibernate的相關文件與API
- lib存放Hibernate編譯和運行所依賴的jar包,其中required子目錄下包含了運行Hibernate項目必須的jar包。
- project存放Hibernate各種相關的源代碼與資源,project目錄下的etc目錄非常重要,它里面有一些關于Hibernate的配置信息。
二、新建一個 Java Project 即可
三、導入項目所需的jar包
四、配置Hibernate4框架各個層
創建數據庫和表
CREATE DATABASE hibernate; USE hibernate;DROP TABLE IF EXISTS `t_class`; CREATE TABLE `t_class` (`classId` bigint(20) NOT NULL AUTO_INCREMENT,`className` varchar(255) DEFAULT NULL,PRIMARY KEY (`classId`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS `t_student`; CREATE TABLE `t_student` (`stuId` bigint(20) NOT NULL AUTO_INCREMENT,`stuName` varchar(255) DEFAULT NULL,`classId` bigint(20) DEFAULT NULL,PRIMARY KEY (`stuId`),KEY `FK_frxpowmeqnmf3sflhwgq3x0ub` (`classId`),CONSTRAINT `FK_frxpowmeqnmf3sflhwgq3x0ub` FOREIGN KEY (`classId`) REFERENCES `t_class` (`classId`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;項目結構
Hibernate4相關配置文件
- hibernate.cfg.xml:它是Hibernate框架的核心配置文件。放在src目錄下
- xxx.hbm.xml:它主要是用于描述類與數據庫中的表的映射關系。放在 hsx.com.model 目錄下
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!--數據庫連接設置 --><property name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property> //hibernate為數據庫名<property name="connection.username">root</property><property name="connection.password">123456</property> //數據庫密碼<!-- 方言 --><property name="dialect">org.hibernate.dialect.MySQL5Dialect</property><!-- 控制臺顯示SQL --><property name="show_sql">true</property><!-- 自動更新表結構 --><property name="hbm2ddl.auto">update</property><mapping resource="hsx/com/model/Student.hbm.xml"/><!-- 映射到Teacher的實體@Entity --><mapping class="hsx.com.model.Student"/> </session-factory></hibernate-configuration>Student.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- 配置文件 --><hibernate-mapping package="hsx.com.model"><class name="Student" table="t_student"> <!-- name 實體類類名,table=數據表表名 --><id name="id" column="stuId"> <!--id是數據表中主鍵的映射,其他字段用property;name表示實體類中的屬性,column表示id映射到數據表的字段名 --><generator class="native"></generator></id><property name="name" column="stuName"></property><many-to-one name="c" column="classId" class="hsx.com.model.Class" cascade="save-update"></many-to-one> <!-- 在<many-to-one>這端,cascade默認是"none",假如我們希望在持久化多的一端的時候,自動級聯保存和更新一的一端,可把cascade設置成"save-update" --></class></hibernate-mapping>創建實體類
hsx.com.model.Student.java
生成Session工廠
hsx.com.util.HibernateUtil.java
創建測試類
hsx.com.service.StudentTest.java
總結
以上是生活随笔為你收集整理的Hibernate源码解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 读写视频文件
- 下一篇: golang sync/atomic