Hibernate 系列 02 - Hibernate介紹及其環境搭建

 

引導目錄:

  Hibernate 系列教程 目錄html

 

昨晚喝多了,下午剛清醒,繼續搞Hibernate。走起、 java

以爲還行的話,記得點贊哈,給我這個渣渣點學習的動力。有錯誤的話也請指出,省的我在錯誤上走了不歸路。呵呵。程序員

 

本篇目錄:sql

  1. 數據持久化概念
  2. Hiberante框架及ORM
    2.1. Hibernate框架
    2.2. 什麼是ORM
    2.3. Hibernate框架的優缺點及其適用場合
      2.4.1 Hibernate框架的優勢
      2.4.2 Hibernate框架的缺點
    2.4. Hibernate環境搭建
    2.5. 技能訓練
    2.6. 練習

 

1.數據持久化概念

  數據持久化是將內存中的數據模型轉換爲存儲模型,以及將存儲模型轉換爲內存中的數據模型的同城。數據庫

  例如,文件的存儲、數據讀取等都是數據持久化操做。數據模型能夠是任何數據結構或對象模型,存儲模型能夠是關係模型、XML、二進制流等。編程

 

  從以上的概念描述,咱們思考一下,以前是否接觸過數據持久化?是否作過數據持久化的操做?api

  答案是確定的。以前一開始,咱們就編寫應用程序操做數據表,對數據表進行增刪改查的操做,例JDBC/ADO.NET等,即數據持久化。session

 

  而Hibernate和數據持久化有什麼關係嘞?數據結構

 

 

 

2.Hibernate框架及ORM

  2.1 Hibernate框架

    Hibernate是數據持久化工具,是一個開放源代碼的對象關係映射框架。架構

    Hibernate內部封裝了經過JDBC訪問數據庫的操做,向上層應用提供面向對象的數據訪問API。

 

    Gavin King是Hibernate的創始人,EJB3.0專家委員會成員,JBoss核心成員之一,也是《Hibernate in Action》一書的做者。

 

    2011年,Gavin King使用EJB的Entity bean 1.1時,以爲開發效率過低,試圖尋找更好的方案。

    通過兩年多的努力,在2003年,Gavin King和他的開發團隊推出了Hibernate。

    Gavin King成爲全世界JavaEE數據庫解決方案的領導者,Hibernate成爲全世界最流行的開源對象關係映射框架。

 

  2.2 什麼是ORM

    ORM(Object/Relational Mapping)即對象/關係映射,是一種數據持久化技術。

    它在對象模型和關係型數據庫之間創建起對應關係,而且提供了一種機制,經過JavaBean對象去操做數據庫表中的數據,如圖:

 

ORM映射關係

 

    在實際開發中,程序員使用面嚮對象的技術操做數據,而當存儲數據時,使用的倒是關係型數據庫,這樣形成了不少不便。

    ORM在對象模型和關係數據庫的表之間創建了一座橋樑,有了ORM,程序員就不須要再使用SQL語句操做數據庫中的表,使用API直接操做JavaBean對象就能夠實現數據的存儲、查詢、更改和刪除等操做。

    Hibernate就是採用ORM對象關係映射技術的持久化開發框架。

 

  2.3 Hibernate框架的優缺點及其適用場合

    回顧一下DAO層代碼,以查找全部用戶爲例,直接使用JDBC查詢用戶的代碼以下:

 1         List users = new ArrayList();
 2         User user;
 3         Connection conn = null;
 4         Statement stmt = null;
 5         ResultSet rs = null;
 6         try{
 7             conn = DBUtil.getConnection();
 8             stmt = conn.createStatement();
 9             rs = stmt.executeQuery("select * rom users");
10             while(rs.next()){
11                 user = new User();
12                 user.setId(rs.getInt("Id"));
13                 user.setUsername(rs.getString("Username"));
14                 user.setPassword(rs.getString("Password"));
15                 user.setTelephone(rs.getString("Telephone"));
16                 user.setRegisterDate(rs.getDate("RegisterDate"));
17                 user.setSex(rs.getInt("Sex"));
18                 users.add(user);
19             }
20         }catch(Exception e){
21             e.printStackTrace();
22         }finally{
23             DBUtil.close(rs,stmt,conn);
24         }

 

    用JDBC查詢返回的是ResultSet對象,ResultSet每每並不能直接使用,還須要轉換成List,而且經過JDBC查詢不能直接獲得具體的業務對象。

    這樣在整個查詢的過程當中,就須要作不少重複性的轉換工做。

 

    使用Hibernate完成持久化操做,只須要編寫以下代碼:

1         Session session = HibernateUtil.getSession();
2         Query query = session.createQuery("from User");
3         List<User> users = (List<User>)query.list();

 

    HibernateUtil是一個自定義的工具類,用於獲取Session對象。

    Hibernate處理數據庫查詢時,編寫的代碼很是簡潔。Hibernate直接返回的是一個List集合類型的對象,能夠直接使用。這樣就避免了繁瑣的重複性的數據轉換過程。

 

2.3.1 Hibernate框架的優勢

  (1)功能強大,是Java應用與關係數據庫之間的橋樑,較之JDBC方式操做數據庫,代碼量大大減小,提升了持久化代碼的開發速度,下降了維護成本;

  (2)Hibernate支持許多面向對象的特性,如組合、繼承、多態等,使得開發人員沒必要在面向業務領域的對象模型和麪向數據庫的關係數據庫之間模型之間來回切換,方便開發人員進行領域驅動的面向對象的設計與開發;

  (3)可移植性好。系統不會綁定在某個特定的關係型數據庫上,對於系統更換數據庫,一般只須要修改Hibernate配置文件便可正常運行;

  (4)Hibernate框架免費,能夠在須要時研究源代碼,改寫源代碼,進行功能的定製,具備可擴展性。

  Hibernate適用於大中型項目。

2.3.1 Hibernate框架的缺點

  (1)不適合以數據爲中心大量使用存儲過程的應用;

  (2)大規模的批量插入、修改和刪除不適合用Hibernate。

  Hibernate不適用於小型項目,也不適用於關係模型設計不合理、不規範的系統。

 

 

2.4 Hibernate環境搭建

  在MyEclipse中新建工程後,使用Hibernate,須要作如下準備工做:

下載Jar包 -> 部署Jar包 -> 建立配置文件(hibernate.cfg.xml) -> 建立持久化類和映射文件

 

2.4.1 下載須要的jar包

  Hibernate的官方網站是http://www.hibernate.org,Hibernate的jar包均可以從官方網站上下載獲得。

  爲了方便新手下載,在此我整理了一下,附上下載地址:http://www.geeksss.com/thread-169-1-1.html

  目前最新版本是5.0.1.FINAL,推薦新手學習使用「hibernate-distribution-x.x.x.GA-dist.zip」。

  在這裏我用的是「hibernate-distribution-3.6.10.Final-dist」。解壓後目錄結構以下:

  注意根目錄和lib\required目錄。

  根目錄包含文件夾和文件,在根目錄下存放着hibernate3.jar,Hibernate的接口和類就在這個Jar包中。

 

  Hibernate會使用到一些第三方類庫,這些類庫放在了lib\required目錄下:

 

Hibernate所需Jar包說明
名稱 說明
antlr-2.7.6.jar 語法分析器
commons-collections-3.1.jar 各類集合和集合工具類的封裝
dom4j-1.6.1.jar XML的讀寫
javassist-3.12.0.GA.jar 分析、編輯和建立Java字節碼的類庫
jta-1.1.jar Java事務API
slf4j-api-1.6.1.jar 日誌輸出

 

2.4.2 部署Jar包

  具體步驟以下:

    (1)將下載的後hibernate3.jar包和lib\required下的jar包及數據庫驅動jar包複製到建好的工程WEB-INF下的lib目錄中:

      

    (2)經過MyEclipse導入上述的包。在MyEclipse中,選中複製到lib裏面的jar包,右鍵 - 「Build Path」 - 「Add to Build Path」,便可快速添加引用:

 

    在此,若是你須要進行一些其餘的配置,而不只僅是導入jar包,則能夠打開詳細的對話框進行導入Jar包並設置:

    右鍵項目 - 「Build Path」 - 「Configure Build Path」:

 

    在彈出的窗體中選擇「Libraries」選項卡,單擊「Add JARs」按鈕,以下圖,在彈出的「JAR Selection」窗體中選擇lib下剛剛複製的jar包,單擊OK便可導入:

 

    爲了方便學習Hibernate,能夠在MyEclipse環境中設置當前工程中的hibernate3.jar的源碼。

    打開工程,展開「Referenced Libraries」,找到剛剛引入的「hibernate3.jar」,右鍵,選擇「Properties」「:

 

    打開屬性窗口以後,在左側選擇」Java Source Attachment」選項,右邊選擇「External location」,點擊「External Floder...」,選擇Hibernate中core的源碼目錄,編碼選擇項目編碼。

    例如個人: F:/下載目錄/hibernate-distribution-3.6.10.Final-dist/project/hibernate-core/src/main/java 

    而後點擊「OK」即設置完成。

 

2.4.3 建立Hibernate配置文件hibernate.cfg.xml

  Hibernate配置文件主要用於配置數據庫鏈接和Hibernate運行時所須要的各類特性。

  在工程的src目錄下添加Hibernate配置文件(可在hibernate-distribution-3.6.10.Final-dist.zip的project\etc目錄下找到示例文件)。

  默認文件名爲「hibernate.cfg.xml」,該文件須要配置數據庫鏈接信息和Hibernate的參數,以下代碼所示。

 1 <!DOCTYPE hibernate-configuration PUBLIC
 2     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 3     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 4 
 5 <hibernate-configuration>
 6     <session-factory>
 7         <!-- 數據庫JDBC驅動 -->
 8         <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
 9         <!-- 數據庫URL -->
10         <property name="connection.url">jdbc:sqlserver://182.92.215.126:1433;databaseName=HibernateStudy</property>
11         <!-- 數據庫用戶 -->
12         <property name="connection.username">sa</property>
13         <!-- 數據庫密碼 -->
14         <property name="connection.password">NbNjC586546mssql</property>
15         
16         <!-- 每一個數據庫都有其對應的Dialect以匹配平臺特性 -->
17         <property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
18         
19         <!-- 指定當前session範圍和上下文 -->
20         <property name="current_session_context_class">thread</property>
21         
22         <!-- 是否將運行時生成的SQL輸出到日誌以供調試 -->
23         <property name="show_sql">true</property>
24         
25         <!-- 是否格式化SQL -->
26         <property name="format_sql">true</property>
27         
28         <!-- 默認狀況下是auto的,就是說若是不設置的話它是會自動去你的classpath下面找一個bean-validation**包,可是找不到,因此會出現Bean Valition Factory錯誤。 -->
29         <property name="javax.persistence.validation.mode">none</property>
30     </session-factory>
31 </hibernate-configuration>

其中幾個經常使用參數的做用以下:

(1)connection.url:表示數據庫URL。「jdbc:sqlserver://182.92.215.126:1433;databaseName=HibernateStudy是SQL Server數據庫的URL。

    其中,jdbc:sqlserver://是固定寫法,182.92.215.126是數據庫的IP地址,1433是SQL Server的端口號,HibernateStudy是鏈接的目標數據庫名稱。

(2)connection.driver_class:表示數據庫驅動。

    "com.microsoft.sqlserver.jdbc.SQLServerDriver"是SQL Server的驅動類。

(3)connection.username:表示數據庫用戶名。

(4)connection.password:表示數據庫用戶密碼。

(5)dialect:用於配置Hibernate使用的數據庫類型。Hibernate支持幾乎全部的主流數據庫,包括Oracle、DB二、MS SQL Server和MySQL等。
    "org.hibernate.dialect.SQLServerDialect"指定當前數據庫類型是SQL Server。

(6)current_session_context_class:指定currentSession()方法所獲得的Session由誰來跟蹤管理。

    「thread」指Session由當前線程來跟蹤管理。

(7)show_sql:參數爲true,則程序運行時在控制檯輸出SQL語句。

(8)format_sql:參數爲true,則程序運行時在控制檯輸出格式化後的SQL語句。

(9)javax.persistence.validation.mode:默認狀況下是auto的,就是說若是不設置的話它是會自動去你的classpath下面找一個bean-validation**包,可是找不到,因此會出現Bean Valition Factory錯誤。須要設置爲none。

 

資料:

  由於Hibernate的配置參數不少,能夠在Hibernate資源包「hibernate-distribution-3.6.10.Final-dist\hibernate-distribution-3.6.10.Final\documentation\manual\zh-CN\pdf\」目錄中,查看「hibernate_reference.pdf」的第3章,瞭解Hibernate的可選配置參數。

 

  準備了Hibernate的配置文件hibernate.cfg.xml,接下來就要準備持久化類和映射文件,以SQL Server中的部門表爲例。

 

 

2.4.4 建立持久化類和映射文件

  持久化類是指其實例狀態須要被Hibernate持久化到數據庫中的類。在應用的設計中,持久化類一般對應需求中的業務實體。

  Hibernate對持久化類的要求不多,它鼓勵採用POJO編程模型來實現持久化類,與POJO類配合完成持久化工做是Hibernate最指望的工做模式。

  Hibernate要求持久化類必須具備一個無參數的構造方法

 

  POJO(Plain Ordinary Java Object),從字面上來說就是普通Java對象。

  POJO類能夠簡單地理解爲符合JavaBean規範的類,它不須要繼承和實現任何特殊的Java基類或者接口。

  JavaBean對象的狀態保存在屬性中,訪問屬性必須經過對應的getXXX()和setXXX()方法。

 

  下面首先定義部門持久化類,添加一個無參數的構造方法,實現java.io.Serializable接口。

  注意,這並非Hibernate所要求的,若是持久化類有可能放入HttpSession中,就須要實現這個接口。在Web開發中,持久化類放入HttpSession是很常見的。

  部門持久化類Dept.java代碼以下:

 1 package com.geeksss.HibernateStudy.entity;
 2 
 3 import java.io.Serializable;
 4 
 5 /**
 6  * 部門實體類
 7  * @author 張董
 8  */
 9 public class Dept implements Serializable{
10     // Field
11     private int deptNo;
12     private String deptName;
13     private String location;
14     
15     // Structure
16     public Dept(){}
17 
18     // Getter and Setter
19     public int getDeptNo() {
20         return deptNo;
21     }
22 
23     public void setDeptNo(int deptNo) {
24         this.deptNo = deptNo;
25     }
26 
27     public String getDeptName() {
28         return deptName;
29     }
30 
31     public void setDeptName(String deptName) {
32         this.deptName = deptName;
33     }
34 
35     public String getLocation() {
36         return location;
37     }
38 
39     public void setLocation(String location) {
40         this.location = location;
41     } 
42 }
Dept.java 部門持久化類

 

  Dept持久化類有一個deptNo屬性,用來惟一標識Dept類的每一個對象。deptNo屬性又稱爲id屬性。

  在Hibernate中,這個id屬性被稱爲對象標識符(OID,Object Identifier)。一個Dept對象和數據庫中Dept表中的一條記錄對應。

  建立持久化類後,還須要「告訴」Hibernate,持久化類Dept映射到數據庫的哪一個表,以及哪一個屬性對應數據庫表的哪一個字段,這些都要在映射文件Dept.hbm.xml中配置。

  詳細的映射文件代碼以下(注意:在Hibernate中,映射文件一般以「.hbm.xml」做爲後綴。):

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC 
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 5 
 6 <hibernate-mapping>
 7     <class name="com.geeksss.HibernateStudy.entity.Dept" table="Dept">
 8         <id name="deptNo" type="java.lang.Integer" column="DeptNo">
 9             <generator class="assigned"></generator>
10         </id>
11         <property name="deptName" type="java.lang.String" column="DeptName"></property>
12         <property name="location" type="java.lang.String">
13             <column name="Location"></column>
14         </property>
15     </class>
16 </hibernate-mapping>
Dept.hbm.xml (Dept實體類映射文件)

 

  上述示例代碼Dept.hbm.xml是Dept類到數據庫表Dept的映射,其中各元素的含義以下:

    • class:定義一個持久化類的映射信息。經常使用屬性以下:
      • name表示持久化類的全限定名;
      • table表示持久化類對應的數據庫表名
      • schema表示數據庫實例中的用戶
    • id:表示持久化類的OID和表的主鍵和映射。經常使用的屬性以下:
      • name:表示持久化類屬性的名稱,和屬性的訪問器相匹配。
      • type:表示持久化類屬性的類型。
      • column:表示持久化類屬性對應的數據表字段的名稱,也可在子元素column中指定。
    • generator:id元素的子元素,用於指定主鍵的生成策略。經常使用屬性及子元素以下:
      • class:用來指定具體主鍵生成策略。
      • param:用來傳遞參數。上述代碼主鍵生成策略是assigned,不須要配置param元素。

 

  經常使用的主鍵生成策略以下:

  (1)increment:對類型long、short或int的主鍵,以自動增加的方式生成主鍵的值。主鍵按數值順序遞增,增量爲1;

  (2)identity:對如SQL Server、DB二、MySQL等支持標識列的數據庫,可以使用該主鍵生成策略生成自動增加主鍵,但要在數據中將該主鍵設置爲標識列;

  (3)sequence:對如Oracle、DB2等支持序列的數據庫,可以使用該主鍵生成策略生成自動增加主鍵,經過子元素param傳入數據庫中序列的名稱;

  (4)native:由Hibernate根據底層數據庫自行判斷採用何種生成策略,即由使用的數據庫生成主鍵的值;

  (5)assigned:主鍵由應用程序負責生成,無需Hibernate參與。

 

    • property:定義持久化類中屬性和數據庫中表的字段的對應關係。經常使用屬性以下:
      • name:表示持久化屬性的名稱,和屬性的訪問器相匹配;
      • type:表示持久化屬性的類型;
      • column:表示持久化類屬性對應的數據庫表字段的名稱,也可在子元素column中指定。
    • column元素:用於指定其父元素表明的持久化類屬性所對應的數據庫表中的字段。經常使用屬性以下:
      • name:表示字段的名稱;
      • length:表示字段長度;
      • not-null:設定是否能夠爲null,值爲true表示不能爲null。

 

  映射信息在映射文件中定義,還須要在配置文件hibernate.cfg.xml中聲明,如:

 1 <!DOCTYPE hibernate-configuration PUBLIC
 2     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 3     "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 4 
 5 <hibernate-configuration>
 6     <session-factory>
 7         <!-- 在此省略以前的其餘配置 -->
 8         
 9         <!-- 映射文件配置,注意配置文件名必須包含其相對於classpath的全路徑 -->
10         <mapping resource="com/geeksss/HibernateStudy/mapping/Dept.hbm.xml"/>
11     </session-factory>
12 </hibernate-configuration>

 

  經過前面的學習,瞭解了Hibernate框架,並學習如何搭建Hibernate環境。接下來爲租房系統搭建Hibernate環境。

 

 

 

2.5 技能訓練

租房系統介紹

  從本節起,使用Hibernate完成租房系統的各項功能。租房系統是一個B/S架構的信息發佈平臺。包括兩種角色:非註冊用戶和註冊用戶。

  主要功能以下:

  (1)發佈房屋信息(註冊用戶)

  (2)瀏覽房屋信息(註冊用戶與非註冊用戶)

  (3)查看房屋詳細信息(註冊用戶與非註冊用戶)

  (4)查詢房屋信息(註冊用戶與非註冊用戶)

  (5)修改房屋信息(註冊用戶)

  (6)刪除房屋信息(註冊用戶)

  本系統使用SQL Server數據庫,請按如下描述建立數據表,如圖:

  上圖描述了租房系統中的五張表,以及它們之間的關係,下面經過表格對這五張表進行說明:

表名:Users(用戶表)
字段名 字段說明 數據類型 說明
Id 用戶編號 int 主鍵,標識列自動增加
Name 用戶名 nvarchar(50) 不容許爲空
Password 密碼 nvarchar(50) 不容許爲空
Telephone 電話 nvarchar(15) 不容許爲空
Username 用戶名 nvarchar(50) 不容許爲空
IsAdmin 是不是管理員 bit 默認false

 

表名:Type(房屋類型表)
字段名 字段說明 數據類型 說明
Id 類型編號 int 主鍵,標識列自增
Name 類型名稱 nvarchar(50) 不容許爲空

 

表名:District(區縣表)
字段名 字段說明 數據類型 說明
Id 區縣編號 int 主鍵,標識列自增
Name 區縣名稱 nvarchar(50) 不容許爲空

 

表名:Street(街道表)
字段名 字段說明 數據類型 說明
Id 街道編號 int 主鍵,標識列自增
Name 街道名稱 nvarchar(50) 不容許爲空
DistrictId 所屬區縣編號 int 外鍵,引用區縣表主鍵

 

表名:House(房屋信息表)
字段名 字段說明 數據類型 說明
Id 房屋信息編號 int 主鍵,標識列自增
Title 標題 nvarchar(50) 不容許爲空
Description 描述 nvarchar(2000) 不容許爲空
Price 出租價格 money 不容許爲空
PublishDate 發佈時間 date 默認當前日期
FloorAge 面積 int 不容許爲空
Contact 聯繫人 nvarchar(100) 不容許爲空
UserId 用戶編號 int 外鍵,引用用戶表主鍵
TypeId 類型編號 int 外鍵,引用類型表主鍵
StreetId 街道編號 int 外鍵,引用街道表主鍵

 

   爲了方便你們學習,在此我將建立數據表以及插入測試數據的SQL寫好了,你們拿過去直接運行便可(沒錯 我就是雷鋒 雷鋒就是我):

 1 use HibernateStudy
 2 go
 3 
 4 -- 用戶表結構
 5 if exists(select * from sys.tables where name='Users') drop table Users
 6 go
 7 create table Users
 8 (
 9     Id int primary key identity(1,1) not null,    -- 用戶編號
10     Name nvarchar(50) not null,                    -- 用戶名
11     Password nvarchar(50) not null,                -- 密碼
12     Telephone nvarchar(15) not null,            -- 電話
13     Username nvarchar(50) not null,                -- 姓名
14     IsAdmin bit default(0) null                    -- 是不是管理員
15 )
16 go
17 
18 -- 房屋類型表
19 if exists(select * from sys.tables where name='Type') drop table Type
20 go
21 create table Type
22 (
23     Id int primary key identity(1,1) not null,    -- 類型編號
24     Name nvarchar(50) not null                    -- 類型名稱
25 )
26 go
27 
28 -- 區縣信息表
29 if exists(select * from sys.tables where name='District') drop table District
30 go
31 create table District
32 (
33     Id int primary key identity(1,1) not null,    -- 區縣編號
34     Name nvarchar(50) not null                    -- 區縣名稱
35 )
36 go
37 
38 -- 區縣信息表
39 if exists(select * from sys.tables where name='Street') drop table Street
40 go
41 create table Street
42 (
43     Id int primary key identity(1,1) not null,            -- 街道編號
44     Name nvarchar(50) not null,                            -- 街道名稱
45     DistrcitId int foreign key(Id) references District    -- 區縣編號,外鍵引用區縣表主鍵
46 )
47 go
48 
49 if exists(select * from sys.tables where name='Hourse') drop table Hourse
50 go
51 create table Hourse
52 (
53     Id int primary key identity(1,1) not null,    -- 房屋信息編號
54     Title nvarchar(50) not null,
55     Description nvarchar(2000) not null,
56     Price money not null,
57     PublishDate date default(getdate()) null,
58     FloorAge int not null,
59     Contact nvarchar(100) not null,
60     UserId int foreign key(Id) references Users,
61     TypeId int foreign key(Id) references Type,
62     StreetId int foreign key(Id) references Street
63 )
64 go
65 
66 
67 -- 向房屋類型表插入數據
68 insert into Type(Name) 
69 select '單人間' union
70 select '雙人間' union
71 select '豪華套間'
72 
73 -- 向區縣表插入數據
74 insert into District(Name)
75 select '海淀區' union
76 select '昌平區' union
77 select '朝陽區' union
78 select '大興區'
79 
80 -- 向街道表插入數據
81 insert into Street(Name,DistrcitId)
82 select '清河天蘭尾貨',1 union
83 select '沙河鎮沙陽路',2 union
84 select '北皋北京機場',3 union
85 select '亦莊火車站',4
86 
87 -- 向用戶信息表中插入數據
88 insert into Users(Name,Password,Telephone,Username,IsAdmin)
89 select '張董','zd123456','18600807420','ZhangDong',1 union
90 select '兵哥','bg123456','13800138000','SunHongYu',0 union
91 select '老劉','ll123456','13800138001','LiuQinYi',0 union
92 select 'lisir','ls123456','13800138002','LiJunZhi',0 
93 
94 -- 向房屋信息表中插入數據
95 insert into Hourse(Title,Description,Price,PublishDate,FloorAge,Contact,UserId,TypeId,StreetId)
96 select '精裝單人間出租','電視有線網線等包羅萬象',500,convert(date,'2015-09-01'),20,'張先生',1,1,2 union
97 select '豪華套間招租','豪華讓你沒的說 看了就愛上',1500,convert(date,'2015-09-02'),40,'孫老闆',2,3,1 union
98 select '雙人間火熱出租','別說兩我的 兩個半我的也夠住 哈哈',800,convert(date,'2015-09-03'),30,'李先生',3,2,3
建立表 插入測試數據的SQL

 

 

【練習 - 爲租房系統搭建Hibernate環境】

需求說明

  爲租房系統搭建Hibernate環境。

  (1)在MyEclipse中建立工程,導入Hibernate的jar包;

  (2)建立Hibernate配置文件hibernate.cfg.xml;

  (3)建立用戶表對應的持久化類User和映射文件User.hbm.xml;

  (4)在hibernate.cfg.xml中聲明上面的映射文件。

 

在這裏,咱們只須要完成上述4個步驟,至於CDUR(增刪改查)的操做,下節我們繼續。

你們照着上面的步驟,本身練習去吧。吼吼。

 

有問題留言,有錯誤也請你們指出。

相關文章
相關標籤/搜索