JDBC Extension
ThingWorx JDBC 확장 프로그램은 ThingWorx 관리자가 ThingWorx 데이터베이스 사물에 사용할 타사 데이터베이스를 지원하는 데 필요한 표준 JDBC 드라이버를 배포할 수 있는 빠르고 쉬운 솔루션을 제공합니다. 데이터베이스 사물을 통해 ThingWorx 솔루션 개발자와 설계자는 ThingWorx에 배포된 솔루션 내의 데이터베이스에서 제공하는 기능을 통합하고 활용할 수 있습니다.
지원 정책
ThingWorx JDBC 확장 프로그램을 사용하려면 관리자가 원하는 데이터베이스에 적합한 JDBC 드라이버를 제공해야 합니다. PTC는 JDBC 커넥터 확장의 일반 기능과 보안을 보장하기 위한 적절한 조치를 모두 취했지만, ThingWorx가 특정 JDBC 드라이버와 호환되는지 확인할 수 없으며 이러한 드라이버 또는 지원되지 않는 데이터베이스와 관련된 기술 지원 요청을 처리하지도 않습니다.
또한 PTC는 지원되지 않는 지속성 공급자용 확장을 사용하는 데 필요한 타사 JDBC 드라이버의 기능이나 보안을 제공하지 않으며 확인할 수도 없습니다. 타사 드라이버를 JDBC 확장 프로그램과 함께 사용하기 전에 확장 보안 권장 사항을 검토할 것을 강력히 권장합니다.
마지막으로 앞서 언급한 이러한 JDBC 드라이버는 ThingWorx 데이터베이스 사물에만 사용할 수 있습니다.
개요
데이터베이스용 ThingWorx에 JDBC 확장 프로그램이 없는 경우 드라이버를 다운로드하고 /Tomcat folder/webapps/Thingworx/WEB- INF/lib 위치에 파일을 추가하여 JDBC 드라이버를 수동으로 추가할 수 있습니다.
드라이버를 복사한 후 ThingWorx(또는 Tomcat)를 다시 시작해야 합니다.
JDBC 드라이버를 Tomcat에 수동으로 로드하여 Tomcat을 재시작하지 않으려면 JDBC 드라이버가 포함된 데이터베이스 확장을 빌드하고 해당 확장을 가져올 수 있습니다. 이 방법의 장점은 드라이버를 수동으로 로드할 필요가 없고 클래스 로드가 자동으로 처리되며 업그레이드가 안전하다는 것입니다. 따라서 ThingWorx 웹 응용 프로그램을 업데이트할 때 드라이버를 다시 배포할 필요가 없습니다. 데이터베이스 확장을 만드는 방법에 대한 자세한 내용을 보려면 아래 단계를 수행하십시오.
ThingWorx용 JDBC Extension 생성
1. support.ptc.com에서 JDBC 확장 프로그램을 구합니다.
2. 다음 메타데이터 파일 예를 참조합니다.
<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. 적절한 JDBC 드라이버를 다운로드합니다.
4. lib/common 디렉터리를 생성하여 확장 구조를 빌드합니다.
5. lib/common/<JDBC 드라이버 JAR 파일> 디렉터리 위치에 JAR 파일을 배치합니다.
6. 필요한 경우 metadata.xml 파일에서 ExtensionPackage 엔티티의 name 속성을 수정합니다.
7. FileResource 엔티티의 파일 속성을 JDBC JAR 파일의 이름으로 지정합니다.
8. 메타데이터에는 사물 템플릿도 포함됩니다. 이 이름은 MySqlServer로 설정되지만 필요에 따라 수정할 수 있습니다.
9. lib 폴더 및 metadata.xml 파일을 선택하고 zip 아카이브로 전송합니다.
* 
zip 아카이브의 이름은 metadata.xml 파일에 있는 ExtensionPackage 엔티티의 이름 속성에 지정된 이름과 일치해야 합니다.
10. 새로 생성한 확장을 가져옵니다.
11. JDBC 확장 프로그램을 사용하려면 새로운 사물을 생성하고 JDBC 프로그램과 함께 가져온 새 사물 템플릿을 지정합니다.
필드 이름
설명
JDBC 드라이버 클래스 이름
사용 중인 드라이버에 따라 다릅니다.
JDBC 연결 문자열
데이터베이스와의 연결을 설정하는 데 필요한 정보를 정의합니다. 연결 문자열 서식 적용은 connectionstrings.com에서 찾을 수 있습니다.
ConnectionValidationString
실행될 테이블 이름에 관계없이 데이터베이스의 반환 값을 확인하는 간단한 질의입니다.
데이터베이스에 대한 질의 및 명령
구성 설정이 완료되면 서비스에서 SQLQueries 및 SQLCommands를 만들어 연결한 데이터베이스에 적용할 수 있습니다.
변수 전달
질의를 작성할 때 매개 변수/변수 대체에 [[매개 변수 이름]]을 사용하고 문자열 대체에 <<문자열 대체>>를 사용합니다.
DELETE FROM <> WHERE (FieldName = '[[MatchName]]');
DELETE FROM << TableName >> WHERE ( FieldName = [[MatchNumber]]);
* 
SQL 삽입의 위험이 발생할 수 있으므로 << ... >> 문자열 대체를 사용하는 것은 매우 위험합니다. 이 매개 변수 전달 방법을 사용할 때는 주의하는 것이 좋습니다. 그러나 매우 동적인 질의 집합을 생성하려면 테이블 이름을 << 테이블 이름 >>으로 전달해야 합니다. 또한 IN 절을 사용해야 하는 경우 컬렉션을 << 항목1, 항목2, 항목3,>>과 함께 전달해야 합니다.