1. 程式人生 > >hibernate框架在eclipse下的配置方法(一)

hibernate框架在eclipse下的配置方法(一)

java、 sql數據庫 文件目錄 測試表 any 配置 包名 ive 當我

一、ORM

O:object 對象

R:Realtion 關系(關系型數據庫)

M:Mapping 映射

ORM:對象關系型映射

  目前流行的編程語言,如Java、C# ,它們都是面向對象的編程語言,而目前主流的數據庫產品例如Oracle、DB2等,依然是關系型數據庫。編程語言和底層數據庫發展的不協調(阻抗不匹配,例如數據庫中無法直接實現存儲繼承、多態、封裝等特征和行為),催生出了ORM框架。ORM框架可以作為面向對象語言和關系型數據庫之間的橋梁。

二、Hibernate

  Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。

三、hibernate框架在eclipse下的配置方法,這裏我們以hibernate3.2為例,介紹一下hibernate3.2在eclipse裏的配置方法:
  (1)打開eclipse,設置其工作空間,點擊OK,進入eclipse主界面。

  (2)首先我們創建一個java項目,File->new->java Project->創建項目名稱,這裏我們以ones為例。

  技術分享

  (3)導入我們所需要的JAR包,這裏我們需要導入3類jar包,首先是hibernate3.jar,是使用hibernate時必備的庫。lib文件中的所有文件。數據庫連接jar包,這裏以mysql數據庫文件,我們需要導入的jar包是mysql.jar。這裏我們創建一個用戶自己的類庫,可以將我們的jar包直接導入user library中,當我們再建立其他的項目時,就避免了再重新一個一個的引入jar包。創建步驟如圖所示:

  技術分享

技術分享

  (4)點擊Add External JARs... 以此導入上述jar包,點擊OK,finish完成操作。此時,項目名下可看到名為first的用戶自定義類庫。

  (5)我們在src文件目錄下導入hibernate.cfg.xml文件。這裏我們所需要更改的內容為第7行,localhost/ones(ones更改為自己的數據庫名)

第9行為mysql用戶名,第10行為mysql數據庫的密碼。第14行代碼刪掉。

 1 <!DOCTYPE hibernate-configuration PUBLIC
 2     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 3
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 4 5 <hibernate-configuration> 6 <session-factory> 7 <property name="hibernate.connection.url">jdbc:mysql://localhost/ones</property> 8 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 9 <property name="hibernate.connection.username">root</property> 10 <property name="hibernate.connection.password">88888888</property> 11 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> 12 <property name="hibernate.show_sql">true</property> 13 14 <mapping resource="com/bjsxt/hibernate/User.hbm.xml"/> 15 </session-factory> 16 </hibernate-configuration>

  (6)在src下建立用戶類以及映射文件。Src右鍵->New->Class->選擇類名,這裏我們創建名為User的類。

  (7)編寫用戶類代碼(這裏eclipse支持批量自動寫入set/get方法)點擊Source->Generate Ftters and Setters 選擇全部,導入。User類已經編寫完成,接下來我們編寫映射文件。

  

 1 package ones;
 2 
 3 public class User {
 4     private String id;
 5     private String name;
 6     private String password;
 7     public String getId() {
 8         return id;
 9     }
10     public void setId(String id) {
11         this.id = id;
12     }
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public String getPassword() {
20         return password;
21     }
22     public void setPassword(String password) {
23         this.password = password;
24     }
25 
26 }

  (8)選擇User.hbm.xml文件,拷入Src文件夾下的包中,文件位置在hiberate\rg\org\hiberate\auction中,這裏我們所要修改的代碼是第6行,org.hibernate.auction改為自己項目的包名。第八行代碼,可以只保留<Class name="User">,其余部分可以刪掉。第九行代碼刪掉。將第12行的native刪掉,native是配置整形數據的,我們之前設置的id為字符型,所以這裏我們改為uuid,15行至50行,刪掉。在<class>中編寫屬性,屬性值等於User.java中定義的屬性(不包括id)。

  

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC 
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping 
 6     package="org.hibernate.auction">
 7 
 8     <class name="User" table="AuctionUser" lazy="true">
 9         <comment>Users may bid for or sell auction items.</comment>
10         
11         <id name="id">
12             <generator class="native"/>
13         </id>
14         
15         <natural-id mutable="true">
16             <property name="userName"
17                     length="10"/>
18         </natural-id>
19         
20         <property name="password" 
21                 not-null="true"
22                 length="15"
23                 column="`password`"/>
24         
25         <property name="email"/>
26         
27         <component name="name">
28             <property name="firstName"
29                     length="50"
30                     not-null="true"/>
31             <property name="initial" 
32                     column="`initial`"/>
33             <property name="lastName"
34                     length="50"
35                     not-null="true"/>
36         </component>
37         
38         <bag name="bids"
39                 inverse="true" 
40                 cascade="save-update,lock">
41             <key column="bidder"/>
42             <one-to-many class="Bid"/>
43         </bag>
44         
45         <bag name="auctions"
46                 inverse="true" 
47                 cascade="save-update,lock">
48             <key column="seller"/>
49             <one-to-many class="AuctionItem"/>
50         </bag>
51         
52     </class>
53     
54 </hibernate-mapping>

  (9)編寫後的User.hbm.xml文件如圖所示:

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC 
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5 <hibernate-mapping 
 6     package="ones">
 7 
 8     <class name="User" >
 9         
10         
11         <id name="id">
12             <generator class="uuid"/>
13         </id>
14         
15         
16         <property name="name"></property>
17         <property name="password"></property>
18     </class>
19     
20 </hibernate-mapping>

  (10)編寫導入類,建立名為ExportDB的類,直接產生它的主方法

 1 package ones;
 2 
 3 import org.hibernate.cfg.Configuration;
 4 import org.hibernate.tool.hbm2ddl.SchemaExport;
 5 
 6 
 7 
 8 public class ExportDB {
 9 
10     public static void main(String[] args) {
11         //讀取文件的配置
12         Configuration cfg = new Configuration().configure();
13         SchemaExport export = new SchemaExport(cfg);
14         export.create(ture, ture);
15     }
16 
17 }

  (11)修改hibernate.cfg.xml中的第14行代碼,將路徑改為ones(包名)/User.hbm.xml

  (12)在mysql數據庫 中建立測試表,運行eclipse中的ExportDB文件,右鍵->Run As->java Application

技術分享

  

  

hibernate框架在eclipse下的配置方法(一)