hibernate實戰筆記1---初探
因為在學習Spring的時候學到有關數據庫的章節的時候,提及到了hibernate的集成,可是我對hibernate技術差點兒是一點不了解。僅僅是知道它是一個orm對象映射框架,所以在初探的章節做一下hibernate的簡單了解,以及應用。順便提一句,我用的是maven加入的hibernate開發包
簡單使用hibernate的一般步驟
*創建而且編輯hibernate配置文件
該配置文件主要是用於鏈接數據庫所用,定義了數據庫的驅動程序和映射文件的位置。例如以下是一個簡單的配置
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <property name="show_sql">true</property> <property name="connection.driver_class"> org.gjt.mm.mysql.Driver </property> <property name="connection.url"> jdbc:mysql://localhost:3306/pgwt </property> <property name="connection.username"> root </property> <property name="connection.password"> 1234 </property> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <mapping resource="com/springframework/hibernate/test.hbm.xml" /> </session-factory> </hibernate-configuration>
依據這個配置文件能夠看出,全部的配置信息都是包括在<hibernate-configureation>標簽之中,該配置文件和Spring的裝配bean幾乎相同,<session-factory>相應一個SessionFactory對象,期中配置的是對象中的屬性,name代表屬性的名稱<property>標簽的內容就是屬性值了,逐一了解一下
show_sql屬性是一個boolean值,代表的是在進行數據庫操作的時候是否在控制臺輸出sql語句,在調試的時候很實用
connection.driver_class代表的是數據庫的jdbc驅動程序,我這裏使用的是mysql所以就是org.gjt.mm.mysql.Driver
connection.url代表的是訪問數據庫的url
connection.username 代表的是登錄數據庫時候的用戶名
connection.password 代表的是登錄數據庫時候的密碼
dialect代表的是一種數據庫的方言。能夠為數據庫中的屬性設置一些默認值(我眼下是這麽理解的,以後再深入研究一下)我知道了一個網頁內容是數據庫相應的方言的類。能夠參考一下百度文庫地址
<mapping resource=""/>標簽是用來引用映射文件地址的,至於映射文件的內容。下文會做簡單的介紹
*創建數據庫表
簡單的創建一個user的數據庫表分別有userid,name,password字段
*創建和數據庫表相應的javaBean類
例如以下是一個簡單的javaBean
package com.springframework.hibernate; public class User { private String userid; private String name; private String password; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
*創建映射文件
映射文件裏包含了一些配置信息,代碼之後會逐一介紹一下配置信息的含義,配置文件例如以下
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.springframework.hibernate.User" table="user"> <id name="userid" column="userid"> <generator class="assigned" /> </id> <property name="name" column="name" /> <property name="password" column="password" /> </class> </hibernate-mapping>
全部的配置信息都是寫在<hebernate-mapping>標簽中,期中能夠包括多個<class>標簽,目的是為了配置javaBean與數據庫表之間的映射關系
<class>標簽中name屬性代表的是該class標簽相應的javaBean,table屬性代表該class標簽相應的數據庫表
<id> 標簽是用於映射主鍵的。user表的主鍵是userid 。name屬性是代表javaBean中屬性的名稱。column屬性代表的是數據庫表中的字段
<generator>標簽定義了生成主鍵的方式,叫做生成器。我選擇的方式是assigned。是由程序自由生成主鍵,相對還有其它集中方式,我找了一篇blog裏面說的還挺具體blog地址
<property>也是像Spring註入javaBean一樣,定義屬性所相應的數據庫表字段的引用column屬性代表的是數據庫表中的字段
*創建一個場景類(主函數)
代碼例如以下
package com.springframework.hibernate; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class Client { public static void main(String[] args) { try { SessionFactory sf = new Configuration().configure() .buildSessionFactory(); Session session = sf.openSession(); Transaction tx = session.beginTransaction(); for (int i = 0; i < 100; i++) { User newuser = new User(); newuser.setUserid("userid" + i); newuser.setName("name" + i); newuser.setPassword("password" + i); session.save(newuser); } tx.commit(); session.close(); } catch (Exception e) { e.printStackTrace(); } } }
這類似是一個樣板是代碼,應該是能夠由Spring模板來替換的。
hibernate是通過SessionFactory來啟動hibernate(通過配置文件與數據連接)。session對象其中包括一些數據庫操作的方法
以上是一些使用hibernate的基本方法,了解了以上的知識就能夠繼續往下學習Spring了,以後再來完好有關hibernate的實戰筆記。
hibernate實戰筆記1---初探