1.建立 Hibernate 配置文件 hibernate.cfg.xml
2.設計 Account 資料表
3.建立 Account 實體
4.建立 Account 實體的映射文件 Account.hbm.xml
5.將 Account 的配置文件加入到 hibernate.cfg.xml
6.最後寫個簡單的 JSP 來測試
建立 Hibernate 配置文件 hibernate.cfg.xml
org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/hibernate root z123456 true
Hibernate 的配置文件是他的核心,以上的配置足夠告訴 Hibernate 該如何去連接資料庫另外一個重點就是配置文件存放了所有的的映射文件,在 Eclipse 中,需將此配置文件加入到 src 目錄下才會生效
設計 Account 資料表
在創建資料表時可以手動創建,也可以利用 Hibernate 提供的
org.hibernate.tool.hbm2ddl.SchemaExport 來創建,故以下寫一個程式範例來創建
但是要用以下程式創建資料表時,你的 Hibernate 的配置文件必須先註冊你要創建的資料表所對應的實體
<mapping resource="org/model/Account.hbm.xml"/> 等等第五點會介紹
執行完上述之後會在 Eclipse 的 Console 中打印以下訊息
drop table if exists Account
create table Account (id varchar(255) not null, name varchar(255), password varchar(255), date datetime, primary key (id))
org.hibernate.tool.hbm2ddl.SchemaExport 來創建,故以下寫一個程式範例來創建
但是要用以下程式創建資料表時,你的 Hibernate 的配置文件必須先註冊你要創建的資料表所對應的實體
<mapping resource="org/model/Account.hbm.xml"/> 等等第五點會介紹
import org.hibernate.cfg.*; import org.hibernate.tool.hbm2ddl.SchemaExport; public class ExportTable{ public static void main(String[] args){ //讀取 Hibernate 的配置文件 Configuration cfg = new Configuration().configure(); //建立 SchemaExport 物件 SchemaExport export = new SchemaExport(cfg); //創建資料表 export.create(true, true); } }
執行完上述之後會在 Eclipse 的 Console 中打印以下訊息
drop table if exists Account
create table Account (id varchar(255) not null, name varchar(255), password varchar(255), date datetime, primary key (id))
建立 Account 實體
package org.model; import java.util.Date; public class Account { private String id; private String name; private String password; private Date date; public Account(){} public String getId() { return id; } public void setId(String id) { this.id = id; } 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; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
以上範例不外乎是一個物件(實體)會對應到資料庫中的一張資料表
建立 Account 實體的配置文件 Account.hbm.xml
* 以上的 class 標籤的 name 屬性指明了此映射文件所需映射的實體 即 org.model.Account
* 以上的 class 標籤的 table 屬性指明了此映射文件對應到後台資料庫的哪個資料表
* 以上的 id 標籤的 name 屬性指明了在映射時 Account 實體中是對應到哪個屬性
* 以上的 id 標籤的 column 屬性指明了在映射時, 資料表該對應到哪個欄位
* 以上的 generator 標籤指明了主鍵生成的策略, 以上使用的 uuid 生成主鍵時 是字串 不是整數
* 以上的 property 標籤指明了資料庫和實體間的屬性和欄位映射
將 Account 的配置文件加入到 hibernate.cfg.xml
映射文件寫完之後,你必須讓 Hibernate 知道有這樣的一個映射關係而配置所有有關於Hibernate 的地方就是在 Hibernate 的配置文件了
所以須將你的映射文件加入到 Hibernate 的配置文件中
<mapping resource="org/model/Account.hbm.xml"/>
簡單的 JSP 來測試
Configuration cfg = new Configuration(); //讀取 Hibernate 的配置文件
SessionFactory factory = cfg.buildSessionFactory(); //創建一個工廠
Session session = factory.openSession(); //工廠專門用來取得 session 的
Transaction tx = session.beginTransaction(); //針對目前的 session 開啟一項交易
Account account1 = new Account(); //建立 Account 的一個實體
account1.setName("test2");
account1.setPassword("123456");
account1.setDate(new Date());
session.save(account1); //保存到 session 中
tx.commit(); //提交事務
session.close();
最後可以在看看 Hibernate 的物件生命週期
hibernate 的物件生命週期
沒有留言:
張貼留言