hibernate框架在eclipse下的配置方法(一)
一、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下的配置方法(一)