天天看點

Hibernate 實體映射Hibernate  實體映射

Hibernate  實體映射

1.1.  資料 庫 與 資料表 表

資料庫 stucourse

資料表 userinfo

                                         表 1 管理者資訊表 userinfo

Hibernate 實體映射Hibernate  實體映射

1.2 建立項目

1.3 建立資料庫連接配接

上篇文章已講到

1.4.  為項目添加 Hibernate支援

項目上右擊->MyEclipse->Add Hibernate Capabilities…

Hibernate 實體映射Hibernate  實體映射

在選擇 hibernate 版本界面,按如下的圖檔内容進行選擇:

Hibernate 實體映射Hibernate  實體映射

生成新的配置檔案:

Hibernate 實體映射Hibernate  實體映射

選擇資料庫連接配接界面,選擇 democnn,并修改資料為 stucourse

Hibernate 實體映射Hibernate  實體映射

在添加 SessionFactory 界面中使用“New…”按鈕建立一個包 org.sf.util:

Hibernate 實體映射Hibernate  實體映射

點選“Finish”完成 Hibernate 應用能力的添加

1.5.  使用 XML  方式生成 userinfo  表的映射檔案

為了後面操作的友善,在 src 包中建立一個包:org.sf.entity,用于存放表的

映入檔案以及實體類(持久化類) ;

在 DB Brower 視窗中,對 userinfo 表進行反向工程,生成實體類 Userinfo 和

映射檔案 Userinfo.hbm.xml,過程如下(userinfo 表右擊Hibernate Reverse

Engineering…) :

Hibernate 實體映射Hibernate  實體映射
Hibernate 實體映射Hibernate  實體映射

選擇主鍵生成界面

Hibernate 實體映射Hibernate  實體映射

選擇 native,由資料庫管理。因為這個表和其它的表沒有關系,是以不用生

成關聯映射,在這個界面中直接點選“Finish”按鈕,結束表的映射。

此時會彈出一個警告界面,說所使用的 democnn 連接配接是到 demo 資料庫的,

而這個工程是連接配接到 stucourse 資料庫的,不用管它,點選“OK”按鈕即可

Hibernate 實體映射Hibernate  實體映射

1..6.  檢視并修改生成的映射檔案

檢查生成的映射檔案 Userinfo.hbm.xml,去掉 catalog="stucouse"參數,最終

的 Userinfo.hbm.xml 檔案内容如下

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD
3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.sf.entity.Userinfo" table="userinfo">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="uname" type="java.lang.String">
<column name="uname" length="20">
<comment> 使用者名</comment>
</column>
</property>
<property name="upass" type="java.lang.String">
<column name="upass" length="20">
<comment> 使用者密碼</comment>
</column>
</property>
</class>
</hibernate-mapping>
           

1.7.  添加測試檔案測試使用者表的功能 在 src 中添加 org.sf.test,在 org.sf.test 中添加 TestUserinfoHibernate 類,檢查

使用者資料操作資訊是否成功,界面如下:

Hibernate 實體映射Hibernate  實體映射

TestUserinfoHibernate 的 main 方法的内容如下

<span style="font-size:14px;">public static void main(String[] args) {
//Configuration cfg= new Configuration();
//cfg.configure();
Session session = HibernateSessionFactory.getSession();
Transaction tran = session.beginTransaction();
Userinfo user = new Userinfo("zs", "zs");
session.save(user);
tran.commit();
session.close();
System.out.println(" 成功的添加了一個使用者");
}</span>
           

 使用@ 注解 方式 制作 選課 系統 管理 員 使用者 實體 映射 并 做 測試 使用@注解方式生成實體映射并的測試的過程如下:@ 注解方式生成持久化類

在 org.sf.entity 中添加 UserinfoJPA 類,使用注解的方式生成持久化類,檔案内容如下:

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="userinfo")
public class UserinfoJPA {
@Id // 指定該列為主鍵。主鍵類型最好不要使用int 等原始類型
// 主鍵類型AUTO 為資料庫自動增長類型
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer id; // 主鍵
@Column(name = "uname")
private String uname; // 使用者名
@Column(name="upass")
private String upass; // 密碼
public UserinfoJPA() {
}
public UserinfoJPA(String uname, String upass) {
this.uname = uname;
this.upass = upass;
}
…//setter 和getter 方法
}
           

2. @ 注解方式的測試類 在 org.sf.test 包中添加 TestUserinfoHibJPA 測試類,該的 main 方法的内容如

下:

public static void main(String[] args) {
Configuration cfg = new AnnotationConfiguration(); // 注意這裡的差別
cfg.configure();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction tran = session.beginTransaction();
UserinfoJPA user = new UserinfoJPA("ls", "ls");
session.save(user);
tran.commit();
session.close();
System.out.println(" 成功的添加了一條使用者資訊。");
}
           

繼續閱讀