网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用Java转化汉字为拼音全拼.
.VJ6.0的使用方法(5)Applet编写调.
.Enterprise JavaBeans组件慨述之.
.利用Jsvc把Java程序嵌入到Linux服.
.xmlhttp和Java session监听改善消.
.值得思考的 J2EE 架构的6个最佳实.
.分享:轻松维护RDF元数据模型(图).
.用Java编写的记事本程序(3).
.派生线程类.
.利用JavaBeans在应用程序中创建组.
.setSeconds 方法.
.在JSR184中使用3D帖图.
.JAVA 深度控制 WORD.
.JAVA进阶:一个简单Thread缓冲池.
.JAVA程序员必读:基础篇(2.d)语言.
.Daemon线程.
.exec 方法.
.JDBC专题介绍(1).
.J2SE1.5注释语法简介.
.如何控制DataGrid里的内容换行与.

hibernate实践

发表日期:2008-1-5



  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>
上一篇:Hibernate入门 - 包作用详解 人气:661
下一篇:Hibernate为什么成功的 人气:428
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐