hibernate框架環(huán)境搭建具體步驟(介紹)
一. 概述:hibernate框架是作用于dao層的,實(shí)現(xiàn)對(duì)數(shù)據(jù)的持久化保存.通過(guò)面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù)。
二. hibernate框架的搭建
1.導(dǎo)包
lib目錄下的required文件夾下的所有jar包.
mysql驅(qū)動(dòng)包.
2.創(chuàng)建數(shù)據(jù)庫(kù)于表.
3.創(chuàng)建實(shí)體類(lèi).
4.創(chuàng)建實(shí)體映射文件(以crm練習(xí)Customer類(lèi)為例)
實(shí)體類(lèi)名.hbm.xml
引入約束文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 根元素
package(可選):填寫(xiě)包名.后面凡是需要完整類(lèi)名的地方,都可以省略包名了.
-->
<hibernate-mapping package="cn.itcast.domain" >
<!-- class:映射類(lèi)與表的關(guān)系
name屬性:實(shí)體屬性名
table屬性:對(duì)應(yīng)的表名
-->
<class name="Customer" table="cst_customer" >
<!-- id:映射主鍵屬性名(OID)與主鍵列對(duì)應(yīng)關(guān)系
name屬性: OID名稱(chēng)
column屬性(可選):主鍵列名,默認(rèn)值就是name屬性值
length屬性(可選):指定屬性長(zhǎng)度.默認(rèn)值使用數(shù)據(jù)庫(kù)對(duì)應(yīng)列長(zhǎng)度
type屬性(可選):指定當(dāng)前列(屬性)的類(lèi)型.默認(rèn)值會(huì)根據(jù)數(shù)據(jù)庫(kù)類(lèi)型自動(dòng)指定類(lèi)型.
type="long" hibernate類(lèi)型
type="java.lang.Long" java類(lèi)型
<column name="cust_id" sql-type="bigint" ></column> 數(shù)據(jù)庫(kù)類(lèi)型
-->
<id name="cust_id" >
<!--主鍵生成策略
increment:hibernate每次保存數(shù)據(jù)是,會(huì)查詢(xún)數(shù)據(jù)庫(kù)中最大的值,在最大值的基礎(chǔ)上加1作為新的主鍵值(測(cè)試時(shí)使用)
identity:主鍵自增,有數(shù)據(jù)庫(kù)負(fù)責(zé)生成主鍵值
sequence:序列,Oracle時(shí)使用
hilo:高低位算法,適用于既不支持自增也不支持序列的庫(kù)(用不著)
native:identity|sequence|hilo自動(dòng)三選一
uuid:主鍵類(lèi)型為字符串是使用.
assigned:有我們手動(dòng)指定ID值
-->
<generator class="native"></generator>
</id>
<!-- property:映射非主鍵屬性名與非主鍵列對(duì)應(yīng)關(guān)系
name屬性: 屬性名
column屬性(可選):非主鍵列名,默認(rèn)值就是name屬性值
length屬性(可選):指定屬性長(zhǎng)度.默認(rèn)值使用數(shù)據(jù)庫(kù)對(duì)應(yīng)列長(zhǎng)度
type屬性(可選):指定當(dāng)前列(屬性)的類(lèi)型.默認(rèn)值會(huì)根據(jù)數(shù)據(jù)庫(kù)類(lèi)型自動(dòng)指定類(lèi)型.
type="long" hibernate類(lèi)型
type="java.lang.Long" java類(lèi)型
<column name="cust_id" sql-type="bigint" ></column> 數(shù)據(jù)庫(kù)類(lèi)型
-->
<property name="cust_name" column="cust_name" ></property>
<property name="cust_source" ></property>
<property name="cust_industry" column="cust_industry" ></property>
<property name="cust_level" column="cust_level" ></property>
<property name="cust_phone" column="cust_phone" ></property>
<property name="cust_mobile" column="cust_mobile" ></property>
</class>
</hibernate-mapping>
創(chuàng)建主配置文件
hibernate.cfg.xml(在src下)
<?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>
<!-- 以下都是為sessionFactory對(duì)象配置的 -->
<session-factory>
<!-- 必選配置
//方言
//所有數(shù)據(jù)庫(kù)的sql語(yǔ)句都是基于SQL99標(biāo)準(zhǔn)的
//每個(gè)數(shù)據(jù)庫(kù)遵循SQL99標(biāo)準(zhǔn)的同時(shí),也會(huì)擴(kuò)充一部分SQL語(yǔ)句.這些標(biāo)準(zhǔn)之外的sql語(yǔ)句叫做方言 mysql方言: limit 0,5
//注意:mysql方言類(lèi)一共有3個(gè).一定要選最短的
#hibernate.dialect org.hibernate.dialect.MySQLDialect
//數(shù)據(jù)庫(kù)驅(qū)動(dòng)
#hibernate.connection.driver_class com.mysql.jdbc.Driver
//數(shù)據(jù)庫(kù)連接url
#hibernate.connection.url jdbc:mysql:///test
//連接用戶名
#hibernate.connection.username gavin
//連接密碼
#hibernate.connection.password
-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_54</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">1234</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 可選配置
//是否在控制臺(tái)顯示hibernate生成的sql
hibernate.show_sql true
//是否對(duì)顯示到控制臺(tái)的sql語(yǔ)句格式化
hibernate.format_sql true
//自動(dòng)建表
# create(測(cè)試時(shí)使用) : 自動(dòng)建表,每次啟動(dòng)hibernate的時(shí)候都會(huì)自動(dòng)建表.
# create-drop(測(cè)試時(shí)使用) : 自動(dòng)建表,每次啟動(dòng)hibernate的時(shí)候都會(huì)自動(dòng)建表.釋放資源時(shí)會(huì)將所有表刪除.
# update(常用) : 自動(dòng)建表,有表就不會(huì)再創(chuàng)建,如果已經(jīng)存在的表不完全匹配.會(huì)自動(dòng)修改表結(jié)構(gòu).
# validate : 校驗(yàn)表結(jié)構(gòu).不會(huì)自動(dòng)建表.每次hibernate啟動(dòng)時(shí)都會(huì)檢查表結(jié)構(gòu)是否正確.
//不正確=>拋出異常.
-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- 指定數(shù)據(jù)庫(kù)隔離級(jí)別
## specify a JDBC isolation level
#hibernate.connection.isolation 4
mysql 默認(rèn)級(jí)別是4
Oracle 默認(rèn)級(jí)別是2
-->
<property name="hibernate.connection.isolation">4</property>
<!-- 配置session與當(dāng)前線程綁定 -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- 映射引入配置
resource屬性:填寫(xiě)引入映射文件的路徑. 相對(duì)于src目錄下.
-->
<mapping resource="cn/itcast/domain/Customer.hbm.xml" />
</session-factory>
</hibernate-configuration>
以上這篇hibernate框架環(huán)境搭建具體步驟(介紹)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
BaseJDBC和CRUDDAO的寫(xiě)法實(shí)例代碼
這篇文章主要介紹了BaseJDBC和CRUDDAO的寫(xiě)法實(shí)例代碼,代碼注釋十分詳細(xì),具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09
SpringBoot整合XxlJob分布式任務(wù)調(diào)度平臺(tái)
xxl-job是一個(gè)開(kāi)源的分布式定時(shí)任務(wù)框架,它可以與其他微服務(wù)組件一起構(gòu)成微服務(wù)集群。它的調(diào)度中心(xxl-job)和執(zhí)行器(自己的springboot項(xiàng)目中有@XxlJob("定時(shí)任務(wù)名稱(chēng)")的方法)是相互分離,分開(kāi)部署的,兩者通過(guò)HTTP協(xié)議進(jìn)行通信2023-02-02
用Eclipse 創(chuàng)建一個(gè)簡(jiǎn)單的web項(xiàng)目(圖文教程)
下面小編就為大家?guī)?lái)一篇用Eclipse 創(chuàng)建一個(gè)簡(jiǎn)單的web項(xiàng)目(圖文教程)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
深入學(xué)習(xí)JAVA GC日志的相關(guān)知識(shí)
JVM 在Java應(yīng)用程序優(yōu)化中是不可缺少的一大重項(xiàng),如何合理配置Java參數(shù),如何驗(yàn)證配置參數(shù)的有效性,從GC日志中可以獲得很重要的提示。下面小編就帶大家來(lái)一起學(xué)習(xí)一下吧2019-06-06
springCloud集成nacos config的過(guò)程
本文介紹spring cloud集成nacos config的過(guò)程,通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08
SpringMVC異常全局捕獲與錯(cuò)誤響應(yīng)的處理方法
編程式異常處理是通過(guò)在代碼中?顯式編寫(xiě)異常捕獲邏輯(如?try-catch?塊)來(lái)管理異常的方式,開(kāi)發(fā)者需要手動(dòng)處理每一個(gè)可能拋出異常的代碼段,本文給大家介紹SpringMVC異常全局捕獲與錯(cuò)誤響應(yīng)的處理方法,感興趣的朋友一起看看吧2025-03-03

