Tutorial - Cómo desarrollar InterSystems IRIS usando SSH
SSHes unframework relativamente representativo de Java, que fue popular hace muchos años. Están Struts+Spring+hibernate y Spring MVC+Spring+hibernate. Por supuesto, utilicé la segunda en la universidad. Si puedo conectar IRIS a Hibernate como librería, ¿significa también que, en teoría, IRIS puede ser desarrollado utilizando el framework SSH?
Herramientas y entorno
JDK 1.8
Maven
Hibernate 5.X.X
IRISHealth-2022.1.3
intellij idea
Windows 10 64
Crear una base de datos
Crear varias tablas en modo código
Class BKIP.SOA.MonitorScreen.CacheTable.logError Extends%Persistent
{
/// Service Overview Cache TableProperty SucNum As%String(MAXLEN = "");Property failNum As%String(MAXLEN = "");Property fdateTime As%String(MAXLEN = "");
}Como se muestra en la imagen:
.png)
Crear un proyecto Spring
El siguiente paso es utilizar IDEA para crear el mapeo de la librería y crear la Entity class
File—New—Project....
.png)
Poner un nombre al proyecto y seleccionar la versión jdk. Hacer clic en "Next"



Esperar a que maven termine de crear el proyecto, como se muestra en la imagen

Añadir los paquetes necesarios

<!--Introduce hibernate package-->
<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...

Seleccionar Facets - añadir Hibernate


Añadir el archivo de configuración como se muestra en la imagen




El paquete de jdbc introduce a iris






Introducir la información de conexión en la configuración de Hibernate

La herramienta de administración de bases de datos de IDEA se conecta a IRIS

Introducir el paquete driver



Conectarse a la base de datos de IRIS


Seleccionar la base de datos requerida

Abrir la herramienta Hibernate, View -- Persistence

Abrir el mapeo, como se muestra:

Seleccionar Connect e introducir el registro. Debido a que la pantalla del ordenador está incompleta, seleccionar todos.

Después, hacer clic en OK hasta que se consiga:

Se obtiene un conjunto de clases de entidad:

Ahora que la clase de entidad se ha creado, el resto de la lógica para crear una fábrica de sesiones para añadir, eliminar y verificar no se muestra aquí. Comparto una clase herramienta que usé solo como referencia
package com.example.hibernate.utils;
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>
* Hibernate Tools
* </p>
*
* @author wangzhe
* @since 2017/3/9 14:42
*/publicclassHibernateUtil{
privatestaticfinal ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
privatestatic SessionFactory sessionFactory = null;
static {
try {
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = cfg.getStandardServiceRegistryBuilder().build();
sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
} catch (Exception e) {
System.err.println("Failed to create session factory");
e.printStackTrace();
}
}
/**
* Get Session
*
* @return Session
* @throws HibernateException
*/publicstatic Session getSession()throws HibernateException {
Session session = (Session) threadLocal.get();
if (session == null || !session.isOpen()) {
if (sessionFactory == null) {
rebuildSessionFactory();
}
session = (sessionFactory != null) ? sessionFactory.openSession() : null;
threadLocal.set(session);
}
return session;
}
/**
* Rebuild session factory
*/publicstaticvoidrebuildSessionFactory(){
try {
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = cfg.getStandardServiceRegistryBuilder().build();
sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
} catch (Exception e) {
System.err.println("Failed to create session factory");
e.printStackTrace();
}
}
/**
* Get SessionFactory object
*
* @return SessionFactory object
*/publicstatic SessionFactory getSessionFactory(){
return sessionFactory;
}
/**
* Close Session
*
* @throws HibernateException
*/publicstaticvoidcloseSession()throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
session.close();
}
}
}
Conclusión:
Lo anterior representa un paso que mostré sobre cómo construir un entorno y continuar desarrollando IRIS como fuente de datos combinada con el framework SSH. Aunque el contenido mostrado es relativamente simple, si sigo este camino, en teoría, puedo utilizar Java para desarrollar y utilizar IRIS, y puedo utilizar una serie de métodos nativos de Java para que sea más práctico para los desarrolladores de Java utilizar el potente rendimiento de IRIS y hacer más negocios. Al mismo tiempo, si queréis utilizar SpringBoot o incluso SpringCloud para desarrollar IRIS, no es imposible. La clave está en el rol que desempeña IRIS en esta arquitectura.