xpage mysql_Domino 如何整Hibernate最佳实践

Domino 整合Hibernate后, Hibernate可以对数据库(如Mysql)进行管理,能用对象模式来访问数据库内容,提高了开发效率。

本文通过实例代码展现了在 Domino 与Hibernate,Mysql之间整合的具体步骤 , 同时讲解了XPages 中如何去使用hibernate。

Hibernate简介

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate能帮助我们利用面向对象的思想,开发基于关系型数据库的应用程序

第一:将对象数据保存到数据库

第二:将数据库数据读入对象中

Hibernate体系结构:

一个非常简要的Hibernate体系结构的概要图

61324ff43aaccc77a997f211289c6cfe.png

从这个图可以看出,Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。

我们来更详细地看一下Hibernate运行时体系结构。 由于Hibernate非常灵活,且支持多种应用方案,所以我们这只描述一下两种极端的情况。

“轻型”的体系结构方案,要求应用程序提供自己的JDBC 连接并管理自己的事务。这种方案使用了Hibernate API的最小子集:

3c371cf2b140759e66bb4ef1a3ab0e78.png

整合步骤

在整合Hibernate的过程中,首先用eclplise搭建好hibernate环境,然后把整个项目打成jar包,把这个jar包添加到domino,给xpage调用。

Eclipse手动搭建Hibernate环境

1 首先使用eclipse新建一个java项目,在src目录下添加lib目录,在该目录下添加Hibernate的jar包,由于jar包之间存在相互调用的关系,要注意所有的jar包版本需要一致,并且,要将数据库驱动包拷到lib目录下,在这里我用的数据库是MYSQL(mysql-connector-java-5.1.8-bin.jar)。最后,把lib目录下的的jar包添加到构建路径。如图:

7483c1ddc1750ed80881a9808642f067.png

2.建立hibernate.cfg.xml,这个文件包含了Hibernate与数据库的基本连接信息。Configuration负责启动hierbante,创建SessionFactory实例。SessionFactory接口负责初始化Hibernate,它充当数据源的代理,并负责创建Session对象,用这个对象的方法对PO进行加载、保存、更新、删除等操作。如图

14b9b1b997cb11b47bc426d639289eb5.png

2 建立实体Bean类(SlwfPersonBean.java),也就是持久化对象(PO)。PO在Hibernate中存在三种状态:临时状态(Transient),持久化状态(Persistent),脱管状态(Detached).当一个JavaBean对象在内存中孤立存在不与数据库中的数据有任何关系时,那么这个JavaBean对象就称为TransientObject;当它与一个Session相关联时,那就变成PersistentObject;在这个Session关闭时,这个对象也会脱离持久状态,成为DetachedObject.如图1.3

af7fe57231fa35cae7a36a043e46ce7f.png

3.建立映射文件(SlwfPerson.hbm.xml):用来把PO与数据库中的表、PO之间的关系与数据表之间的关系以及PO的属性与表字段一一映射起来,它是Hibernate的核心文件。如图

9009e5cd3312eb5a421aeb5c94451fbf.png

5.测试hibernate,搭建成功.如图

ea0d44882837a08fe5055de5d92be89a.png

6.把整个项目导出成jar文件(HibernateTest.jar),选中项目,然后右击选择export,导出类型为jar,选择完成按钮后,导出成功。 如图

36193f5f101e36b9e40883ec7f65c14f.png

Hibernate 整合到 Domino

方法1:

首先要把Designer切换到JAVA视图

打开Designer ,选择窗口属性,切换至java开发视图。找到WEB_INF目录,把jar包copy到lib目录下,然后选中HibernateTest.jar右击选择构建路径,把jar添加进去。这种方法,作为java开发人员,都会选择这样去做。如图

bf276a1034600bdbd715d6c0ca5df8af.png

然后新建一个Xpage页面,做测试。

在Designer里,新建一个xpage页面,在页面中添加一个Button,写Ls代码去调用HibernateTest.jar,里面的方法.如图

4bad88d5e022b8d2833e6a894bc4d0f3.png

importPackage(com.gzsolar.util)// 如果你要调用某个类,须引入 JAR里面的包名

importPackage(com.gzsolar.cnst)

try{

var unid = "";

if(param.containsKey("unid")){

unid = param.get("unid")

}

unid = ""

var doc:NotesDocument = database.getDocumentByUNID("DD757E2D538C359F48257D0100068299");

var instanceId = doc.getItemValueString("InstanceID");

doc.replaceItemValue("InstanceStatusOS",InstanceStatus.Cancel);

doc.save();

var util:EngineUtils = new EngineUtils() ;

util.cancelInstance(instanceId);

}catch(e){

print(e);

}

接着,导入jar包到ext目录下

在整合的过程中,需要hibernate的jar包放到path:\IBM\Domino\jvm\lib\ext目录下,这是最容易出错的地方。在这里你可能觉得导过来的HibernateTest.jar,里面有这些包了,能不能不导入呢,肯定不能,这样会后台会报错,提示没有session这个类,在domino中找不到。

ece1e2f3e1444817a439cda1c222b79b.png

所以把hibernate用的包,放在ext目录中,给domino进行编译,才可以使用。

测试成功 :domino后台打印Hibernate 语句,myql表里也添加了一条记录,如图

2c2c52c39d9c3cb22715df0d703ee96e.png

方法2:

把HibernateTest.jar直接放在path:\IBM\Domino\jvm\lib\ext目录下。然后重启服务.

原文:http://blog.csdn.net/laughing2me/article/details/34103665

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值