創(chuàng)新互聯(lián)公司是一家以成都網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計、品牌設(shè)計、軟件運維、seo優(yōu)化排名、小程序App開發(fā)等移動開發(fā)為一體互聯(lián)網(wǎng)公司。已累計為隧道混凝土攪拌車等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
序號 | 技術(shù) | 作用 |
---|---|---|
1 | Struts | 基于mvc模式的應(yīng)用層框架技術(shù)! |
2 | Spring | 創(chuàng)建對象、處理對象的依賴關(guān)系以及框架整合! |
3 | Hibernate | 基于持久層的框架(數(shù)據(jù)訪問層使用)! |
(1)操作XML數(shù)據(jù)
(2)使用Jdbc技術(shù)
a)原始的jdbc操作, Connection/Statement/ResultSet
b)自定義一個持久層框架, 封裝了dao的通用方法
c)DbUtils組件, 輕量級的dao的組件;
d)Hibernate技術(shù)【hibernate最終執(zhí)行的也是jdbc代碼!】
O, Object 對象
R, Realtion 關(guān)系 (關(guān)系型數(shù)據(jù)庫: MySQL, Oracle…)
M,Mapping 映射
ORM, 對象關(guān)系映射!
ORM, 解決什么問題?
存儲: 把對象的數(shù)據(jù)直接保存到數(shù)據(jù)庫
獲取: 直接從數(shù)據(jù)庫拿到一個對象
想做到上面2點,必須要有映射!
Hibernate是ORM的實現(xiàn)!
1、源碼,引入jar文件
2、配置(.xml or .properties)
3、API
Hibernate開發(fā)步驟
(1)下載源碼
版本:hibernate-distribution-3.6.0.Final,下載地址如下:
https://sourceforge.net/projects/hibernate/files/hibernate3/3.6.0.Final/
選擇141.0MB的文件,它的文件格式是.zip格式的,而下面的文件是.gz格式的。
解壓之后,它的源碼位于hibernate-distribution-3.6.0.Final\project\core\src目錄下
(2)引入jar文件
a)hibernate3.jar (核心文件)
位于hibernate-distribution-3.6.0.Final目錄下
b)required (必須引入的jar,共6個)
位于hibernate-distribution-3.6.0.Final\lib\required目錄下
c)jpa 目錄
位于hibernate-distribution-3.6.0.Final\lib\jpa目錄
d)數(shù)據(jù)庫驅(qū)動包(我用的是mysql的驅(qū)動包)
(3)寫對象以及對象的映射
a)Employee.java 對象
import java.util.Date; public class Employee { private int empId; private String empName; private Date workDate; public int getEmpId() { return empId; } public void setEmpId(int empId) { this.empId = empId; } public String getEmpName() { return empName; } public void setEmpName(String empName) { this.empName = empName; } public Date getWorkDate() { return workDate; } public void setWorkDate(Date workDate) { this.workDate = workDate; } }
b)Employee.hbm.xml 對象的映射 (映射文件)
(.hbm可能是hibernate mapping的縮寫)
<?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"> <!-- This mapping demonstrates content-based discrimination for the table-per-hierarchy mapping strategy, using a formula discriminator. --> <hibernate-mapping package="com.rk.hibernate.a_hello"> <class name="Employee" table="employee"> <!-- 主鍵,映射 --> <id name="empId" column="id"> <generator class="native"/> </id> <!-- 非主鍵,映射 --> <property name="empName" column="empName"></property> <property name="workDate" column="workDate"></property> </class> </hibernate-mapping>
(4)主配置文件 src/hibernate.cfg.xml
a)數(shù)據(jù)庫連接配置
b)加載所用的映射(*.hbm.xml)
<!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節(jié)點代表一個數(shù)據(jù)庫 --> <session-factory> <!-- 1. 數(shù)據(jù)庫連接配置 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql:///test</property> <!-- 等同于jdbc:mysql://localhost:3306/test --> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <!-- 數(shù)據(jù)庫方言配置, hibernate在運行的時候,會根據(jù)不同的方言生成符合當(dāng)前數(shù)據(jù)庫語法的sql --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 2. 其他相關(guān)配置 --> <!-- 2.1 顯示hibernate在運行時候執(zhí)行的sql語句 --> <property name="hibernate.show_sql">true</property> <!-- 2.2 格式化sql --> <property name="hibernate.format_sql">true</property> <!-- 2.3 自動建表 --> <property name="hibernate.hbm2ddl.auto">update</property> <!-- 3. 加載所有映射 --> <mapping resource="com/rk/hibernate/a_hello/Employee.hbm.xml"/> </session-factory> </hibernate-configuration>
(5)測試
package com.rk.hibernate.a_hello; import java.util.Date; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.classic.Session; public class App { public static void main(String[] args) { // 對象 Employee emp = new Employee(); emp.setEmpName("張三"); emp.setWorkDate(new Date()); /* * 主體思路:Configuration-->SessionFactory-->Session * 細節(jié):Session-->Transaction,必須由session創(chuàng)建transaction,否則無法保存。 */ // 獲取加載配置文件的管理類對象 Configuration config = new Configuration(); config.configure(); // 創(chuàng)建session的工廠對象 SessionFactory sessionFactory = config.buildSessionFactory(); // 創(chuàng)建session (代表一個會話,與數(shù)據(jù)庫連接的會話) Session session = sessionFactory.openSession(); // 開啟事務(wù) Transaction transaction = session.beginTransaction(); //保存數(shù)據(jù) session.save(emp); // 提交事務(wù) transaction.commit(); // 關(guān)閉 session.close(); sessionFactory.close(); System.out.println("Over"); } }
名稱欄目:(01)Hibernate入門
本文路徑:http://www.chinadenli.net/article12/peisdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、小程序開發(fā)、網(wǎng)站收錄、網(wǎng)站排名、網(wǎng)站策劃、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)