Extensibilidad de ThingWorx > Extensiones > Extensión de conector de JDBC
Extensión de conector de JDBC
La extensión de JDBC de ThingWorx proporciona una solución rápida y fácil para permitir a los administradores de ThingWorx implementar los controladores JDBC estándar necesarios para soportar bases de datos de terceros que se pueden utilizar con una cosa de base de datos de ThingWorx. Las cosas de base de datos permiten a los desarrolladores y arquitectos de soluciones de ThingWorx incorporar y aprovechar la funcionalidad proporcionada por una base de datos dentro de una solución implementada en ThingWorx.
Directiva de soporte
Para utilizar la extensión de JDBC de ThingWorx, los administradores deben proporcionar el controlador JDBC adecuado para la base de datos deseada. Aunque PTC ha adoptado todas las medidas adecuadas para garantizar la funcionalidad general y la seguridad de la extensión de conector de JDBC, PTC no puede verificar que ThingWorx sea compatible con ningún controlador JDBC específico. PTC tampoco procesará las solicitudes de soporte técnico relacionadas con estos controladores o bases de datos no soportados.
Además, PTC no suministra ni puede confirmar la funcionalidad o la seguridad de los controladores JDBC de terceros, necesarios para utilizar la extensión para los proveedores de persistencia no soportados. PTC recomienda encarecidamente revisar las recomendaciones de seguridad de extensión antes de utilizar controladores de terceros con la extensión de JDBC.
Por último, los controladores JDBC mencionados solo se utilizan con cosas de la base de datos de ThingWorx.
Resumen
Si no existe una extensión de JDBC en ThingWorx para la base de datos, se puede añadir manualmente el controlador JDBC, descargando los controladores y añadiendo los ficheros en la siguiente ubicación: /carpeta Tomcat/webapps/Thingworx/WEB-INF/lib
Después de copiar los controladores, es necesario reiniciar ThingWorx (o Tomcat si es más fácil).
Si no desea cargar manualmente el controlador JDBC en Tomcat y reiniciar Tomcat, se puede crear una extensión Database en la que se incluya el controlador JDBC e importar esa extensión. La ventaja de este método es que no hace falta cargar manualmente el controlador, la carga de clase se controla de forma automática y la actualización es segura, por lo que no necesario volver a implementar el controlador cuando se actualiza la aplicación Web de ThingWorx. Para obtener más información sobre la creación de una extensión de base de datos, siga los siguientes pasos.
Creación de una extensión JDBC para ThingWorx
1. Obtenga la extensión de JDBC en support.ptc.com.
* 
El modelo de soporte de extensiones de ThingWorx ha cambiado recientemente. La mayoría de las extensiones ya no están disponibles en la página de descargas. Para obtener más información, consulte este artículo.
2. Consulte el fichero de metadatos de ejemplo:
<Entities>
<ExtensionPackages>
<!-- The name attribute of the ExtensionPackage element correlates to the name of the zip
archive for the extension -->
<ExtensionPackage name="DatabaseXYZ_ExtensionPackage" description="DatabaseXYZ JDBC Extension" vendor="Acme Corporation" packageVersion="1.0" minimumThingWorxVersion="5.0.0">
<JarResources>
<!-- The JDBC JAR file being used to connect to DatabaseXYZ -->
<FileResource type="JAR" file="databaseXYZ.jdbc.jar" description="DatabaseXYZ JDBC JAR"/>
</JarResources>
</ExtensionPackage>
</ExtensionPackages>
<ThingTemplates>
<!-- A Database ThingTemplate for the DatabaseXYZ extension -->
<ThingTemplate name="DatabaseXYZ" baseThingTemplate="Database" description="DatabaseXYZ ThingTemplate"/>
</ThingTemplates>
</Entities>
3. Descargue el controlador JDBC adecuado.
4. Genere la estructura de la extensión creando el directorio lib/common.
5. Coloque el fichero JAR en la siguiente ubicación del directorio: lib/common/<fichero JAR de controlador JDBC>.
6. Modifique el atributo name de la entidad ExtensionPackage en el fichero metadata.xml según sea necesario.
7. El atributo de fichero de la entidad FileResource debe apuntar al nombre del fichero JAR de JDBC.
8. Los metadatos también contienen una plantilla de cosa. El nombre se define en MySqlServer, pero se puede modificar según sea necesario.
9. Seleccione la carpeta lib y el fichero metadata.xml y envíelos a un archivo comprimido.
* 
El nombre del archivo comprimido debe coincidir con el nombre proporcionado en el atributo de nombre de la entidad ExtensionPackage del fichero metadata.xml.
10. Importe la extensión recién creada.
11. Para utilizar la extensión JDBC, cree una nueva cosa y asígnele la nueva plantilla de cosa que se ha importado con la extensión JDBC.
Nombre del campo
Descripción
Nombre de clase de controlador JDBC
Depende del controlador que se utilice.
Cadena de conexión JDBC
Permite definir la información necesaria para establecer una conexión con la base de datos. El formato de cadena de conexión se puede encontrar en connectionstrings.com.
ConnectionValidationString
Una consulta simple que permite verificar los valores devueltos desde la base de datos (independientemente de los nombres de tabla que se vayan a ejecutar).
Consultas y comandos en la base de datos
Cuando se haya realizado la configuración, se pueden crear SQLQueries y SQLCommands en los servicios para que se ejecuten en la base de datos a la que se ha conectado el usuario.
Transferencia de variables
Al crear la consulta, utilice [[nombre de parámetro]] para la sustitución de parámetros/variables y <<reemplazo de cadena >> para la sustitución de cadenas.
Ejemplo
DELETE FROM <> WHERE (FieldName = '[[MatchName]]');
DELETE FROM << TableName >> WHERE ( FieldName = [[MatchNumber]]);
* 
Es extremadamente peligroso utilizar la sustitución de cadena << ... >>, porque se corre el riesgo de inyección de código SQL. Se recomienda tener cuidado al considerar este método para transferir parámetros. Sin embargo, para crear un conjunto de consultas muy dinámico, se deben pasar los nombres de tabla como << Nombre de la tabla >>. Asimismo, si es necesario utilizar la cláusula IN, la recopilación se deberá transferir con << Elemento1, Elemento2, Elemento3,>>
¿Fue esto útil?