快速业务通道

hibernate实践 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

hibernate实践

时间:2011-01-07

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>

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号