教程 - 使用 SSH 开发 IRIS
SSH框架是Java一个的比较有代表性的框架,是多年前比较流行的一个。有struts+spring+hibernate和springMVC+spring+hibernate两种,当然我大学时候使用的是第二种。倘使我能把IRIS作为一个库,联结到Hibernate那么理论上是不是也代表IRIS也可以使用SSH框架开发呢?
工具及环境
JDK 1.8
Maven
Hibernate 5.X.X
IRISHealth-2022.1.3
intellij idea
Windows 10 64位
1、创建数据库
用代码的方式创建几个表
|
Class BKIP.SOA.MonitorScreen.CacheTable.logError Extends %Persistent { /// 服务概况缓存表 Property SucNum As %String(MAXLEN = ""); Property failNum As %String(MAXLEN = ""); Property fdateTime As %String(MAXLEN = ""); } |
如图所示:

2、创建一个Spring的项目
File—New—Project....

next

给项目起名,选择jdk版本

Next

Next

等待maven把项目创建完成

添加需要的包

|
<!--引入hibernate包--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.9.Final</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.1.2</version> </dependency> |
File—Project Structure。。。

选择Facets—加上Hibernate

点击OK

加上配置文件如图

点击OK

点击OK


引入iris的jdbc包






在Hibernate配置中输入连接信息

IDEA的数据库管理工具连上IRIS

引入驱动包



连接IRIS数据库


选择所需要的数据库

打开Hibernate工具,View--Persistence

打开映射,如图:

选择连接并且输入报名,由于电脑显示不全,全选。

接下来一直点OK,直到成功:

你就得到了一堆实体类:

好了实体类建立出来了,剩下的增删改查就不需要我再展示了,有更强的人来处理。
分享一个工具类:
|
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.boot.MetadataSources; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; /** * <p> * * </p> * * @author wangzhe * @since 2017/3/9 14:42 */ public class HibernateUtil { //为保证线程安全,将Seeeion放到ThreadLocal中管理。这样就避免了Session的多线程共享数据的问题 private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static SessionFactory sessionFactory = null;//SessionFactory对象 //静态块(在类被加载时执行,且生命周期内只执行一次) static { try { // 加载Hibernate配置文件 Configuration cfg = new Configuration().configure(); // 创建会话工厂 // hibernate4.0版本前这样获取sessionFactory = configuration.buildSessionFactory(); // hibernate5以后规定,所有的配置或服务,要生效,必须配置或服务注册到一个服务注册类(服务构建器-->服务注册器) ServiceRegistry serviceRegistry = cfg.getStandardServiceRegistryBuilder().build(); // 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂 sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory(); } catch (Exception e) { System.err.println("创建会话工厂失败"); e.printStackTrace(); } } /** * 获取Session * @return Session * @throws HibernateException */ public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); //获取ThreadLocal中当前线程共享变量的值。 if (session == null || !session.isOpen()) { if (sessionFactory == null) { //如果会话工厂创建失败为空就在重新创建一次 rebuildSessionFactory(); } //创建Sqlsession数据库会话 session = (sessionFactory != null) ? sessionFactory.openSession(): null; //设置ThreadLocal中当前线程共享变量的值。 threadLocal.set(session); } return session; } /** * 重建会话工厂 */ public static void rebuildSessionFactory() { try { // 加载Hibernate配置文件 Configuration cfg = new Configuration().configure(); // 创建会话工厂 // hibernate4.0版本前这样获取sessionFactory = configuration.buildSessionFactory(); // hibernate5以后规定,所有的配置或服务,要生效,必须配置或服务注册到一个服务注册类(服务构建器-->服务注册器) ServiceRegistry serviceRegistry = cfg.getStandardServiceRegistryBuilder().build(); // 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂 sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory(); } catch (Exception e) { System.err.println("创建会话工厂失败"); e.printStackTrace(); } } /** * 获取SessionFactory对象 * @return SessionFactory对象 */ public static SessionFactory getSessionFactory() { return sessionFactory; } /** * 关闭Session * @throws HibernateException */ public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); //使用set(null)来回收ThreadLocal设置的值. threadLocal.set(null); if (session != null) { session.close();//关闭Session } } } |
总结:
以上是我结合SSH框架展示了一下IRIS作为数据源时候如何搭建环境继续开发的一个步骤,展示的内容虽然比较简单,但是如果按照我这种方式的话理论上是可以使用Java来对IRIS进行开发和使用的,并且可以使用Java原生的一系列手段,更加方便Java开发者使用IRIS的强大性能,完成更多的业务,同时在此基础上如果你想使用SpringBoot甚至SpringCloud来开发IRIS也不是不可能,关键是IRIS在这个架构中的角色。