我的第一個hibernate(詳解)-2
文件
/
新建
/
其他
/
出現以下畫面
點擊 web project 下一步后在項目名寫 test2, 點擊完成即可 .
完成后在 test2 項目點擊右鍵 , 如下圖
然后進入下面頁面
,(
記得選擇
hibernate2.1 jar library installation
選第二項
,
確保設置與下圖一致
)
下一步
/
下一步
將
db profile
選擇為
MSSQL1
點擊下一步
如
下圖
( class:
如下圖填寫
)
點擊完成 .
現在我們建立對象 Customer.java Order.java
文件 / 新建 / 類 ? 在彈出的窗口中 源文件夾為 test2/src 包為 com 名字為 Customer, 點擊完成即可 .
建立 Order.java 操作一樣 .
添加代碼 :
Customer.java
package com;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class Customer implements Serializable {
??? /** identifier field */
??? private Long id;
??? /** nullable persistent field */
??? private String name;
??? /** full constructor */
??? public Customer(String name) {
??????? this.name = name;
??? }
??? /** default constructor */
??? public Customer() {
??? }
??? public Long getId() {
??????? return this.id;
??? }
??? public void setId(Long id) {
??????? this.id = id;
??? }
??? public String getName() {
??????? return this.name;
??? }
??? public void setName(String name) {
??????? this.name = name;
??? }
??? public String toString() {
??????? return new ToStringBuilder(this)
??????????? .append("id", getId())
??????????? .toString();
??? }
}
Order.java
package com;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/** @author Hibernate CodeGenerator */
public class Order implements Serializable {
??? /** identifier field */
??? private Long id;
??? /** nullable persistent field */
??? private String orderNumber;
??? /** persistent field */
??? private com.Customer customer;
??? /** full constructor */
??? public Order(String orderNumber,Customer customer) {
??????? this.orderNumber = orderNumber;
??????? this.customer = customer;
??? }
???
???
??? /** default constructor */
??? public Order() {
??? }
??? /** minimal constructor */
??? public Order(com.Customer customer) {
??????? this.customer = customer;
??? }
??? public Long getId() {
??????? return this.id;
??? }
??? public void setId(Long id) {
??????? this.id = id;
??? }
??? public String getOrderNumber() {
??????? return this.orderNumber;
??? }
??? public void setOrderNumber(String orderNumber) {
??????? this.orderNumber = orderNumber;
??? }
??? public com.Customer getCustomer() {
??????? return this.customer;
??? }
??? public void setCustomer(com.Customer customer) {
??????? this.customer = customer;
??? }
??? public String toString() {
??????? return new ToStringBuilder(this)
??????????? .append("id", getId())
??????????? .toString();
??? }
}
建立兩個映射文件 Customer.hbm..xml?? Order.hbm.xml
文件 / 新建 選擇如下圖
選擇第一個
下一步
在下一步中
父文件夾為
test2/src/com?
文件名為
Customer.hbm.xml
下一步
選擇如下圖
點擊下一步 完成 ?
建立 Order.hbm.xml 方法一致 .
將兩個 xml 文件修改一下 修改部分粗體顯示了
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
編輯 Customer.hbm..xml?? Order.hbm.xml
Customer.hbm..xml??
<?
xml
version
=
"1.0"
?>
<!
DOCTYPE
hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>
<
hibernate-mapping
>
?
<
class
name
=
"com.Customer"
table
=
"CUSTOMER"
>
???
<
id
name
=
"id"
type
=
"long"
column
=
"ID"
>
?????
<
generator
class
=
"increment"
/>
???
</
id
>
???
<
property
name
=
"name"
type
=
"string"
>
???????
<
column
name
=
"NAME"
length
=
"15"
/>
???
</
property
>
?????
?
</
class
>
</
hibernate-mapping
>
Order.hbm.xml
<?
xml
version
=
"1.0"
?>
<!
DOCTYPE
hibernate-mapping
PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"
>
<
hibernate-mapping
>
??
<
class
name
=
"com.Order"
table
=
"[ORDER]"
>
????
?????
<
id
name
=
"id"
type
=
"long"
column
=
"ID"
>
???????
<
generator
class
=
"increment"
/>
?????
</
id
>
??
?????
<
property
name
=
"orderNumber"
type
=
"string"
>
???????
<
column
name
=
"ORDER_NUMBER"
length
=
"15"
/>
?????
</
property
>
????
<
many-to-one
???????
name
=
"customer"
?????
??
column
=
"CUSTOMER_ID"
???????
class
=
"com.Customer"
???????
not-null
=
"true"
???????
cascade
=
"save-update"
?????
????
/>
<!-- mapping with cascade -->
<!--
????? <many-to-one
??????? name="customer"
??????? column="CUSTOMER_ID"
??????? class="mypack.Customer"
??????? cascade="save-update"?
??????? not-null="true" />
?-->
?
???
</
class
>
?
</
hibernate-mapping
>