Hibernate学习——建立一个简单的Hibernate项目
最近老師讓做個web小應用,大三的時候學習過一點J2EE的東西,也做過一些web相關的XXX管理系統,都是用servlet,jsp這些完成的,雖然勉強能夠完成任務,但其中各種代碼摻雜在一起,不好看而且維護起來也很麻煩,出了一點問題要調試好久才能解決。這次打算讓自己多學一點東西,在項目的架構上我使用了struts2實現了多層代碼的分離,在數據庫方面,因為以往的經歷都需要對連接數據庫進行一個封裝,里面包含有數據庫的連接,記錄的添加,查詢,修改和刪除等操作,每次使用的過程中都需要先實現一個連接對象然后再進行數據庫的操作,而面向對象編程中對于不同對象,傳統的數據庫操作只能夠完成一個泛化的任務,不同的對象需要不同的處理方式,所以我們需要一個使用面向對象思想描述數據庫的一個框架來完成這樣的任務,通過度娘就找到了Hibernate。
那么在這里我將記錄下我學習Hibernate框架的過程,以免用過之后又給忘記了。。。
今天我將完成環境的配置以及建立一個簡單的Hibernate的工程,使用的開發工具為myeclipse10,數據庫為mysql。
在此之前我們要做一些必要的準備:java jdk還有mysql的問題我就不說了,這里只涉及項目配置以及必要代碼的編寫,我們要先下載Hibernate的jar包,解壓后找到這幾個文件:hibernate-annotations.jar,hibernate-commons-annotations.jar,hibernate-entitymanager.jar,hibernate-validator.jar,hibernate3.jar。
打開myeclipse后建立一個web項目,將上述的Jar包導入到項目中,這里我自己建立一個數據庫lan,里面有一個表叫user,其中包括U_ID,U_NAME,U_PASSWORD三個,我們的任務就是在程序中實現一個User類,完成User類與數據庫中user表的映射,并向表中添加一個記錄。
一個hibernate的項目有必不可少的兩個文件,一個是hibernate.cfg.xml,用于完成項目與數據庫的映射。另一個是xxx.hbm.xml,即表與類對象映射的文件,實現類屬性與表中屬性的映射。
首先要完成項目與數據庫的映射關系,在這里需要寫一個配置文件來完成,命名為hibernate.cfg.xml,路徑放在src根目錄就好。
1 <?xml version='1.0' encoding='UTF-8'?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 5 6 <!-- Generated by MyEclipse Hibernate Tools. --> 7 <hibernate-configuration> 8 9 <session-factory> 10 <property name="dialect"> 11 org.hibernate.dialect.MySQLDialect 12 </property> 13 <property name="hibernate.connection.url"><!-- 填寫數據庫路徑 --> 14 jdbc:mysql://127.0.0.1:3306/lan 15 </property> 16 <property name="connection.username">root</property><!-- 填寫數據庫用戶名 --> 17 <property name="connection.password">root</property><!-- 填寫數據庫密碼 --> 18 <property name="connection.driver_class"><!-- 填寫數據庫驅動 --> 19 com.mysql.jdbc.Driver 20 </property> 21 <property name="myeclipse.connection.profile">lan</property> 22 <mapping resource="./User.hbm.xml" /><!-- 表映射文件--> 23 24 </session-factory> 25 26 </hibernate-configuration>?
其中的表映射文件我們下面說。
然后寫一個User類(注意我們的模型類和表內容必須是一一對應的,即屬性之間是一一對應的關系):
1 class User{ 2 private int id; 3 private String name; 4 private String password; 5 6 public void setId(int id){ 7 this.id = id; 8 } 9 public void setName(String name){ 10 this.name = name; 11 } 12 public void setPassword(String password){ 13 this.password = password; 14 } 15 16 public int getId(){ 17 return id; 18 } 19 public String getName(){ 20 return name; 21 } 22 public String getPassword(){ 23 return password; 24 } 25 }?
其中的數據成員分別對應數據庫user表中的三個元素:U_ID,U_NAME,U_PASSWORD。
有了user類,我們下一步就是要實現數據庫表user與程序中的模型類User的映射關系了,此時我們需要一個表映射文件:XXX.hbm.xml(本文我們將其命名為user.hbm.xml)
1 <?xml version="1.0" encoding="utf-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- 5 Mapping file autogenerated by MyEclipse Persistence Tools 6 --> 7 <hibernate-mapping> 8 <class name="model.User" table="user" catalog="lan"> 9 <id name="id" type="int"> 10 <column name="U_ID" length="11" /> 11 <generator class="assigned"></generator> 12 </id> 13 <property name="name" type="string"> 14 <column name="U_NAME" length="20" not-null="true" /> 15 </property> 16 <property name="password" type="string"> 17 <column name="U_PASSWORD" length="20" not-null="true" /> 18 </property> 19 </class> 20 </hibernate-mapping>?
其中class name選項是項目中數據庫表對應的類路徑,table選項為表名,catalog為數據庫名。
完成了上述的準備過程,我們下面就要嘗試對項目進行測試了,我們向數據庫中添加一個的記錄的代碼如下:
1 User user; //定義一個model 2 user.setId(1); //設置user的屬性值 3 user.setName("name"); 4 user.setPassword("password"); 5 Session session; 6 // 找到Hibernate配置 7 Configuration config=new Configuration().configure(); 8 //從配置中取出SessionFactory 9 SessionFactory factory=config.buildSessionFactory(); 10 //從SessionFactory中取出一個Session 11 session=factory.openSession(); 12 Transaction tran=session.beginTransaction(); 13 //執行語句 14 this.session.save(user); 15 //提交事務 16 tran.commit();//以上的語句實現了向數據庫中添加一條記錄的效果,第一次寫思維有點混亂。。。
轉載于:https://www.cnblogs.com/mickeygao/p/3947066.html
總結
以上是生活随笔為你收集整理的Hibernate学习——建立一个简单的Hibernate项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle数据库案例整理-Oracle
- 下一篇: Lua 学习笔记(一)