程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> hibernate實踐

hibernate實踐

編輯:關於JAVA

hiberante是對數據庫持久層訪問的一種機制,hibernate的應用可以使程序員將重點放到業務邏輯的實現上。hibernate的原理是將數據庫結構封裝,使程序員可以像使用普通對象一樣調用數據庫的相關接口,從實現數據庫的相關操作。

下面就說一個例子,環境j2sdk1.4.2_04,tomcat4.1.27,eclipse3.0,hibernate2.1

數據庫的結果如下:

create table Users (
LogonID VARCHAR(255) not null,
EmailAddress VARCHAR(255),
LastLogon DATE,
Password VARCHAR(255),
Name VARCHAR(255),
primary key (LogonID)
);
create table Address2 (
ID VARCHAR(255) not null,
City VARCHAR(255),
State VARCHAR(255),
Zip VARCHAR(255),
primary key (ID)
);
create table Contacts (
ID BIGINT not null,
EmailAddress VARCHAR(255),
Name VARCHAR(255),
User_ID VARCHAR(255),
primary key (ID)
);
alter table Contacts add constraint FKE207C4735A7381EF foreign key (User_ID) references Users;
create index IXE207C4735A7381EF on Contacts (User_ID);

eclipse安裝好hibernate插件後,許多比較繁瑣,容易出錯的配置文件,eclipse都可以幫您很好的自動生成,您的主要任務就是實現Dao,也就是eclipse針對每個表生成的數據訪問對象。比如本例的BaseAddress2DAO,ContactsDAO,UsersDAO,你可以修改這三個對象實現對Contacts,Users,Address2的相關操作。該例子的結構如下:

其中Address2,Contacts,Users相當於實體bean,實現對數據表的映射。由於表Users和Contacts存在one-to-many關系,所以在Users.java的實現中將Contacts也作為一個對象屬性。

private java.util.Set _contactsSet;
/**
* Return the value associated with the column: ContactsSet
*/
public java.util.Set getContactsSet () {
return this._contactsSet;
}
/**
* Set the value related to the column: ContactsSet
* @param _contactsSet the ContactsSet value
*/
public void setContactsSet (java.util.Set _contactsSet) {
this._contactsSet = _contactsSet;
}
public void addToContactsSet (Object obj) {
if (null == this._contactsSet) this._contactsSet = new java.util.HashSet();
this._contactsSet.add(obj);
}

一般情況下,hibernate實現數據庫的連接有兩種方式,一種是借助web服務器的連接池,一種是自己配置連接參數文件。這裡只介紹第二種方式:

<hibernate-configuration>
<session-factory>
<!-- local connection properties -->
<!--數據庫路徑-->
<property name="hibernate.connection.url">
jdbc:jtds:sqlserver://192.198.64.168:1433;databasename=test;SelectMethod=Cursor
</property>
<!--連接驅動-->
<property name="hibernate.connection.driver_class">
net.sourceforge.jtds.jdbc.Driver
</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password">sasa</property>
<!-- property name="hibernate.connection.pool_size"></property -->
<!-- 數據庫方言 -->
<property name="dialect">
net.sf.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.use_outer_join">true</property>
<!-- mapping 文件-->
<mapping resource="com/head/multi/Contacts.hbm" />
<mapping resource="com/head/multi/Users.hbm" />
<mapping resource="com/head/multi/Address2.hbm" />
</session-factory>
</hibernate-configuration>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved