在resin3配置hibernate.docx

上传人:b****1 文档编号:11085576 上传时间:2023-05-29 格式:DOCX 页数:14 大小:18.05KB
下载 相关 举报
在resin3配置hibernate.docx_第1页
第1页 / 共14页
在resin3配置hibernate.docx_第2页
第2页 / 共14页
在resin3配置hibernate.docx_第3页
第3页 / 共14页
在resin3配置hibernate.docx_第4页
第4页 / 共14页
在resin3配置hibernate.docx_第5页
第5页 / 共14页
在resin3配置hibernate.docx_第6页
第6页 / 共14页
在resin3配置hibernate.docx_第7页
第7页 / 共14页
在resin3配置hibernate.docx_第8页
第8页 / 共14页
在resin3配置hibernate.docx_第9页
第9页 / 共14页
在resin3配置hibernate.docx_第10页
第10页 / 共14页
在resin3配置hibernate.docx_第11页
第11页 / 共14页
在resin3配置hibernate.docx_第12页
第12页 / 共14页
在resin3配置hibernate.docx_第13页
第13页 / 共14页
在resin3配置hibernate.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

在resin3配置hibernate.docx

《在resin3配置hibernate.docx》由会员分享,可在线阅读,更多相关《在resin3配置hibernate.docx(14页珍藏版)》请在冰点文库上搜索。

在resin3配置hibernate.docx

在resin3配置hibernate

在resin3.0中配置hibernate2.1.2连mysql

在resin3.0中配置hibernate2.1.2连mysql

Author:

hamal

约定:

resin3\代表resin3.0的安装根目录

hibernate2\代表hibernate2.1.2的安装根目录

1.在resin3\下建立我们的web应用根,如resin3\mydomain目录(mydomain的目录名可以随意取,之后在配置文件中配置即可)

2.在resin3\mydomain目录下分别建立resin3\mydomain\WEB-INF\classes目录和resin3\mydomain\WEB-INF\lib目录。

这两个目录对应本web应用程序上下文的类装载器搜索路径(对于jar来说是resin3\mydomain\WEB-INF\lib,对于class文件来说是resin3\mydomain\WEB-INF\classes)。

我们把这两个路径分别称为应用库类路径(用于存放和本应用相关的jar类库)和上下文类路径(用于存放本应用的class文件和xml配置文件)。

另外还有一个路径是resin3\lib目录,我们称该路径为全局库类路径(存放于resin3服务器上,供该服务器上所有web应用共享使用的相关jar类库)。

3.本示例使用的是mysql数据库,所以我们将mysql的jdbc驱动jar包(mm.mysql-2.0.4-bin.jar)放入resin3\lib目录中,之后该驱动将能被所有web应用所用。

4.将hibernate2\hibernate2.jar文件拷贝到resin3\mydomain\WEB-INF\lib目录下,然后拷贝hibernate2\lib目录下必须的jar文件也拷贝到resin3\mydomain\WEB-INF\lib目录下。

如果你不是很清楚哪些包是你所需要的,可以参看hibernate2\lib\README.txt文件,或者,再简单一点,我们将hibernate2\lib目录下的所有jar文件都拷贝到resin3\mydomain\WEB-INF\lib目录下。

5.现在我们开始配置resin的jdbc数据库连接池。

修改resin3\conf\resin.conf文件

a)搜索webapps,将webapps替换为我们自定义的应用目录mydomain。

b)查找元素,取消该元素的注释状态,该文件的注释采用的是html风格的注释方式

---->。

c)将元素修改为如下形式

jdbc/mysql

jdbc:

mysql:

//192.162.125.3:

3306/mysql

root

12345678

8

20

30s

如此resin的jdbc连接池配置完成。

6.将hibernate2\src目录下的hibernate.properties、log4j.properties、oscache.properties文件拷贝到resin3\mydomain\WEB-INF\classes目录下。

7.由于我们使用的是mysql数据库,所以修改hibernate.properties文件中关于mysql部分的配置,并注释掉原默认的HypersonicSQL配置。

注释配置就是在语句前加#符号。

如:

#hibernate.dialectnet.sf.hibernate.dialect.HSQLDialect

下面是一个典型的mysql配置:

hibernate.dialectnet.sf.hibernate.dialect.MySQLDialect

hibernate.connection.driver_classorg.gjt.mm.mysql.Driver

hibernate.connection.driver_classcom.mysql.jdbc.Driver

hibernate.connection.urljdbc:

mysql:

//192.162.125.3:

3306/mydb

hibernate.connection.usernameroot

hibernate.connection.password12345678

我们需要修改的就是下面3行:

url是指jdbc连接描述符,格式为jdbc:

mysql:

//数据库IP:

端口号/数据库名

username是指用于登陆该数据库的用户名

password该用户密码

8.将hibernate和resin的数据库连接池绑定。

在目录里创建一个hibernate.cfg.xml文件,文件内容如下

xmlversion='1.0'encoding='utf-8'?

>

DOCTYPEhibernate-configuration

PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"

"

java:

comp/env/jdbc/mysql

true

net.sf.hibernate.dialect.MySQLDialect

--Mappingfiles-->

元素告诉hibernate使用resin中定义的jndi来连接数据库,子元素用于描述每一个映射数据库表的配置文件路径,

其声明了User.hbm.xml是一个HibernateXML映射文件,对应持久化类User。

这个文件包含了把POJO类映射到数据库表(或多个数据库表)的元数据。

我们稍后就回来看这个文件。

让我们先编写这个POJO类,再看声明它的映射元数据。

9.在mysql中建立user表该表的格式如下:

User_idPasswordNick_nameE_mail

16666hamalhamal@

26666vampirevampire@

36666andeande@

在resin3\mydomain\WEB-INF\classes目录下分别新建3个java文件:

Test.java、HibernateUtil.java、User.java。

HibernateUtil.java源代码如下:

该类是一个辅助类,用于获得一个静态的SessionFactory,SessionFactory负责一个数据库,也只对应一个XML配置文件(hibernate.cfg.xml)。

importnet.sf.hibernate.*;

importnet.sf.hibernate.cfg.*;

publicclassHibernateUtil{

privatestaticfinalSessionFactorysessionFactory;

static{

try{

sessionFactory=newConfiguration().configure().buildSessionFactory();

}catch(HibernateExceptionex){

thrownewRuntimeException("ExceptionbuildingSessionFactory:

"+ex.getMessage(),ex);

}

}

publicstaticfinalThreadLocalsession=newThreadLocal();

publicstaticSessioncurrentSession()throwsHibernateException{

Sessions=(Session)session.get();

//OpenanewSession,ifthisThreadhasnoneyet

if(s==null){

s=sessionFactory.openSession();

session.set(s);

}

returns;

}

publicstaticvoidcloseSession()throwsHibernateException{

Sessions=(Session)session.get();

session.set(null);

if(s!

=null)

s.close();

}

}

User.java源代码如下:

Hibernate让普通的Java对象(PlainOldJavaObjects,就是POJOs,有时候也称作PlainOrdinaryJavaObjects)变成持久化类。

一个POJO很像JavaBean,属性通过getter和setter方法访问,对外隐藏了内部实现的细节。

publicclassUser{

privateIntegerid;

privateStringnick;

privateStringpassword;

privateStringemail;

publicUser(){

}

publicIntegergetId(){

returnid;

}

publicvoidsetId(Integerid){

this.id=id;

}

publicStringgetNick(){

returnnick;

}

publicvoidsetNick(Stringnick){

this.nick=nick;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicStringgetEmail(){

returnemail;

}

publicvoidsetEmail(Stringemail){

this.email=email;

}

}

Test.java源代码如下:

importjavax.naming.*;

importnet.sf.hibernate.*;

importjava.util.*;

publicclassTest{

voidTest(){

}

publicstaticvoidinsert(){

try{

SessionhSession=HibernateUtil.currentSession();

Transactiontx=hSession.beginTransaction();

Usernewp=newUser();

Integerid=newInteger("4");

newp.setId(id);

newp.setNick("love");

newp.setPassword("123");

newp.setEmail("test@");

hSession.save(newp);

mit();

HibernateUtil.closeSession();

}catch(Exceptione){

e.printStackTrace();

}

}

}

10.编写HibernateXML映射文件

在resin3\mydomain\WEB-INF\classes目录下新建User.hbm.xml文件,文件内容如下:

xmlversion="1.0"?

>

DOCTYPEhibernate-mapping

PUBLIC"-//Hibernate/HibernateMappingDTD//EN"

"

简单说明:

元素中的name属性代表的是User类的全路径名(即包名+类名的形式),table属性代表的是该User类映射的数据库表名。

元素代表该表的主键,name属性代表在User类中对应的类属性名。

元素代表该id属性对应的数据库user表中的user_id字段。

11.界面测试:

我们在resin3\mydomain目录下新建一个test.jsp文件如下:

<%@pagecontentType="text/html;charset=gb2312"%>

Thisisatest!</p><p>

Thisisatest!

<%Test.insert();%>

12.测试

好了,现在所有的准备工作都已经做完了,开始测试看看。

我们启动rensin服务器,启动文件为resin3\bin\httpd.exe,双击该文件即可。

在测试前我们看到的mysql中user表的内容如下。

User_idPasswordNick_nameE_mail

16666hamalhamal@

26666vampirevampire@

36666andeande@

现在我们打开IE,在地址栏中输入http:

//localhost:

8080/test.jsp

当界面上正常显示出Thisisatest!

之后,我们再查看数据库内容如下:

User_idPasswordNick_nameE_mail

16666hamalhamal@

26666vampirevampire@

36666andeande@

4123lovetest@

恭喜,你已经完成了本次示例!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2