Extension JDBC
ThingWorx JDBC Extension permet aux administrateurs ThingWorx de déployer facilement et rapidement les pilotes JDBC standard requis pour prendre en charge des bases de données tierces à utiliser avec un objet de base de données ThingWorx. Les objets de base de données permettent aux développeurs et architectes de solutions ThingWorx d'intégrer et de tirer parti des fonctionnalités fournies par une base de données au sein d'une solution déployée sur ThingWorx.
Politique de prise en charge
Pour utiliser ThingWorx JDBC Extension, les administrateurs doivent fournir le pilote JDBC approprié pour la base de données souhaitée. Bien que PTC ait pris toutes les mesures appropriées pour garantir la fonctionnalité et la sécurité générales de l'extension de connecteur JDBC, PTC ne peut pas confirmer la compatibilité de ThingWorx avec un pilote JDBC spécifique, ni traiter les demandes de support technique associées à ces pilotes ou aux bases de données non prises en charge.
En outre, PTC ne fournit pas et ne peut pas confirmer la fonctionnalité ou la sécurité des pilotes JDBC tiers nécessaires à l'utilisation de l'extension pour les fournisseurs de persistance non pris en charge. PTC recommande vivement de consulter les recommandations en matière de sécurité des extensions avant d'utiliser des pilotes tiers avec l'extension JDBC.
Enfin, les pilotes JDBC susmentionnés ne sont utilisables qu'avec des objets de base de données ThingWorx.
Présentation
Si aucune extension JDBC n'existe dans ThingWorx pour votre base de données, vous pouvez ajouter manuellement le pilote JDBC, en téléchargeant les fichiers requis et en les ajoutant à l'emplacement suivant : /Tomcat folder/webapps/Thingworx/WEB- INF/lib.
Une fois les pilotes copiés, vous devez redémarrer ThingWorx (ou Tomcat si cela est plus simple).
Si vous ne souhaitez pas charger manuellement le pilote JDBC sur Tomcat et avoir à redémarrer Tomcat, vous pouvez créer une extension de base de données qui inclut le pilote JDBC, puis importer cette extension. Avec cette approche, vous n'avez pas à charger manuellement le pilote, le chargement de la classe est géré pour vous et les mises à niveau sont sûres, le redéploiement du pilote n'étant alors pas nécessaire lorsque vous mettez à jour l'application Web de ThingWorx. Pour créer une extension de base de données, procédez comme indiqué ci-après.
Création d'une extension JDBC pour ThingWorx
1. Récupérez l'extension JDBC sur support.ptc.com.
2. Reportez-vous à l'exemple de fichier de métadonnées :
<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. Téléchargez le pilote JDBC approprié.
4. Générez la structure de l'extension en créant le répertoire lib/common.
5. Placez le fichier JAR à l'emplacement suivant : lib/common/<fichier JAR du pilote JDBC>.
6. Modifiez l'attribut name de l'entité ExtensionPackage dans le fichier metadata.xml, selon les besoins.
7. Faites pointer l'attribut file de l'entité FileResource sur le nom du fichier JAR du pilote JDBC.
8. Les métadonnées contiennent également un modèle d'objet. Le nom est défini sur MySqlServer, mais il peut être modifié si nécessaire.
9. Sélectionnez le dossier lib et le fichier metadata.xml, puis compressez-les.
* 
Le nom du fichier ZIP doit correspondre à celui de l'attribut name de l'entité ExtensionPackage du fichier metadata.xml.
10. Importez la nouvelle extension.
11. Pour utiliser l'extension JDBC, créez un nouvel objet et attribuez le nouveau modèle d'objet qui a été importé avec l'extension JDBC.
Nom de champ
Description
Nom de classe de pilote JDBC
Dépend du pilote utilisé.
Chaîne de connexion JDBC
Définit les informations requises pour établir une connexion avec la base de données. Le format de la chaîne de connexion peut être consulté sur le site Web connectionstrings.com.
ConnectionValidationString
Requête simple qui vérifie les valeurs renvoyées par la base de données (sans tenir compte des noms de table à exécuter).
Requêtes et commandes sur la base de données
Une fois la configuration effectuée, vous pouvez créer dans les services des requêtes SQLQueries et des commandes SQLCommands à exécuter sur la base de données à laquelle vous êtes connecté.
Transmission de variables
Lorsque vous créez votre requête, utilisez [[Nom du paramètre]] pour le remplacement de paramètres/variables et <<remplacement de chaîne>> pour le remplacement de chaînes.
Exemple
DELETE FROM <> WHERE (FieldName = '[[MatchName]]');
DELETE FROM << TableName >> WHERE ( FieldName = [[MatchNumber]]);
* 
Il est très dangereux d'utiliser le remplacement de chaînes << ... >>, car cela vous expose à un risque d'injection de code SQL. Soyez prudent si vous envisagez d'utiliser cette méthode pour la transmission de paramètres. Cependant, pour créer un jeu de requêtes très dynamique, vous devez transmettre les noms de table comme suit : << Nom de la table >>. Par ailleurs, si vous devez utiliser la clause IN, vous devrez transmettre votre collection avec << Elément1, Elément2, Elément3,>>.