hibernate 基於例項的入門教程

2021-08-19 05:36:54 字數 3721 閱讀 3586

使用jdbc做資料庫相關功能開發會做很多重複性的工作,比如建立連線,關閉連線,把字段逐一對映到屬性中。 hibernate把這一切都封裝起來了,使得資料庫訪問變得輕鬆而簡單,**也更加容易維護。

第一次使用hibernate會有乙個比較多步驟的配置過程,以後再使用,就很簡單了。

必讀: 基於框架的程式要成功執行,對於jar包的版本,配置檔案的正確性有著苛刻的要求,任何乙個地方出錯了,都會導致框架程式執行失敗。 如果你是第一次學習本框架,務必嚴格按照教程的指導,完全模仿操作,直到成功看到執行效果。 第一次成功之後,信心,思路都會有較好的鋪墊,然後再根據自己的疑惑,在「成功」的**上做原本想做的改動和調整,這樣可以大大節約學習的時間,提高效率,切勿一來就擅自改動,給自己的學習製造障礙.

可執行專案:product.zip

步驟 1:

本例演示如何使用hibernate往資料庫插入一條資料。

如圖,這條iphone7的產品資料,就是由hibernate插入的

步驟 2:

首先準備資料庫test

注: 新安裝的資料庫賬號密碼是root:admin, 後續的配置裡,也是用的這個賬號密碼。如果密碼不是這個,本知識點右上角的可執行專案跑不起來,所以盡量修改密碼root

create database test;

步驟 3:

準備表product, 有3個字段,分別是

主鍵id(自增長)

字串格式的name

浮點數格式的price

use test;

create table product_ (

id int(11) not null auto_increment,

name varchar(30) ,

price float ,

primary key (id)

) default charset=utf8;

步驟 4:

步驟 5:

新建乙個lib的資料夾

把所有的包都複製過去

然後把包全部匯入進去

步驟 6:

package com.iscc.pojo;

public class product

public void setid(int id)

public string getname()

public void setname(string name)

public float getprice()

public void setprice(float price)

步驟 7:

在包com.iscc.pojo下 新建乙個配置檔案product.hbm.xml, 用於對映product類對應資料庫中的product_表

注: 檔名 product.hbm.xml

p一定要大寫,要和類保持一致

表示類product對應

表product_

表示屬性id,對映表裡的

欄位id

意味著id的自增長方式採用資料庫的本地方式

如果是連線oracle資料庫,可以指定sequnce作為id自增長方式

這裡配置的時候,只寫了屬性name,沒有通過column="name" 顯式的指定字段,那麼欄位的名字也是name.

<?xml version="1.0" encoding="utf-8"?>在

src目錄下建立 hibernate.cfg.xml

配置訪問資料庫要用到的驅動,url,賬號密碼等等

其他配置及含義:

org.hibernate.dialect.mysqldialect

這表示使用mysql方言。 什麼方言呢? 因為在**層面,開發人員不用關心底層到底用oracle還是mysql,寫的**都是一樣的。 可是oracle和mysql所用的sql語句的語法是有所區別的,那麼這件事就交給hibernate來做了。這個時候就需要告訴hibernate底層用的是什麼資料庫,它才知道應該用什麼樣的「方言」 去對話。

thread

這是hibernate事務管理方式,即每個執行緒乙個事務

true

這表示是否在控制台顯示執行的sql語句

update

這表示是否會自動更新資料庫的表結構,有這句話,其實是不需要

建立表的,因為hibernate會自動去建立表結構

這表示hibernate會去識別product這個實體類

com.mysql.jdbc.driver

root

jdbc:mysql:

root

org.hibernate.dialect.mysqldialect

org.hibernate.dialect.mysqldialect

thread

true

update

步驟 9:

步驟 10:

應用程式通過hibernate把 乙個 product物件插入到資料庫的product_表中

hibernate.cfg.xml 配置檔案提供鏈結資料庫的基本資訊

賬號 密碼 驅動 資料庫ip 埠

product.hbm.xml 提供物件與表的對映關係

對應哪個表? 什麼屬性,對應什麼字段

步驟 11:

執行起來之後會出現如圖所示的三行警告資訊,這是因為沒有進行slf4j配置,所以出現的警告資訊,不影響執行。

要解決這個問題,需要引入log4j的jar和配置檔案,和當前hibernate學習無關,為了把注意力集中在hibernate本身的學習上,驚蟄就不提供log4j那些東西了。 不影響執行的,大家往下學習好啦

hibernate相關新入職

table 使用乙個特定的資料庫 來儲存主鍵。sequence 根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。identity 主鍵由資料庫自動生成 主要是自動增長型 auto 主鍵由程式控制。另外這個框架如果用hibernate註解開發表沒用主鍵的話會崩,而且還要設定主鍵的生成策略。inj...

Valang Validator學習例項入門

valang validator 是較為新穎的外掛程式,在參考胡鍵 valang validator攻略 一文以及官方指導文章後將自己將學習valang validator的乙個完整例項寫下,希望對大家有所幫助。對於valang validator的介紹可以參考本部落格內的 valang valid...

基於Hibernate的主鍵生成策略

1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence...