• Domino 怎样整Hibernate最佳实践


    版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/JackLei__/article/details/34103665

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

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

    Hibernate简单介绍

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

    Hibernate能够应用在不论什么使用JDBC的场合。既能够在Java的client程序使用,也能够在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate能够在应用EJB的J2EE架构中代替CMP。完毕数据持久化的重任。

    Hibernate能帮助我们利用面向对象的思想,开发基于关系型数据库的应用程序
    第一:将对象数据保存到数据库
    第二:将数据库数据读入对象中
    Hibernate体系结构:
    一个很简要的Hibernate体系结构的概要图

     

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

    我们来更具体地看一下Hibernate执行时体系结构。

    因为Hibernate很灵活,且支持多种应用方案。所以我们这仅仅描写叙述一下两种极端的情况。

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

    整合步骤

    在整合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包加入到构建路径。

    如图:

     2.建立hibernate.cfg.xml,这个文件包括了Hibernate与数据库的基本连接信息。

    Configuration负责启动hierbante,创建SessionFactory实例。SessionFactory接口负责初始化Hibernate,它充当数据源的代理,并负责创建Session对象,用这个对象的方法对PO进行载入、保存、更新、删除等操作。

    如图

    2 建立实体Bean类(SlwfPersonBean.java),也就是持久化对象(PO)。

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

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

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

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

    如图

    Hibernate 整合到 Domino

    方法1:
    首先要把Designer切换到JAVA视图
    打开Designer ,选择窗体属性,切换至java开发视图。

    找到WEB_INF文件夹,把jar包copy到lib文件夹下,然后选中HibernateTest.jar右击选择构建路径,把jar加入进去。这样的方法,作为java开发者。都会选择这样去做。如图


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

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


    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:IBMDominojvmlibext文件夹下,这是最easy出错的地方。在这里你可能认为导过来的HibernateTest.jar,里面有这些包了,能不能不导入呢,肯定不能,这样会后台会报错,提示没有session这个类,在domino中找不到。



    所以把hibernate用的包,放在ext文件夹中,给domino进行编译,才干够使用。


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

    方法2:
    把HibernateTest.jar直接放在path:IBMDominojvmlibext文件夹下。

    然后重新启动服务.




  • 相关阅读:
    export ,export default 和 import 区别 以及用法
    koa2 安装环境
    Webstorm在MAC下的安装方法
    Mac 下搭建vue开发环境
    Mac系统下安装Vue-cli详细步骤
    npm 安装vue 报错Failed at the chromedriver@2.34.0 install script 'node install.js'
    #001 WebStrom SVN使用技巧
    #006 dependencies和devDependencies的区别
    #001 GIT创建分支
    #003 React 组件 继承 自定义的组件
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10801569.html
Copyright © 2020-2023  润新知