TiberoとOracleの互換性の問題。 パート2. Javaアプリケーション開発







データベースアプリケーション開発者向けの一連の記事- 第1部:PL / SQLの条件付きコンパイル 。 この記事では、JDBCとHibernateを使用するJavaアプリケーションでのTiberoの使用と、Spring Rooフレームワークについて説明します。







Spring Roo 2.0.0.RC2が昨年リリースされました。 これは、データベース(DB)、SOAP、およびRESTful Webサービスと対話するSpring MVCアプリケーションのプロトタイプの開発時間を大幅に短縮できるJavaフレームワークです。 また、フレームワークの最新バージョンがSpring Bootアプリケーションを作成し、THYMELEAF HTMLページテンプレートエンジンを使用することも重要です。 前のバージョンとは異なり、Spring Roo 1.3.2はJavaアプリケーションの開発に最新のテクノロジーを使用しています。













「すぐに使える」Spring Roo 2.0.0は次の(DB)で動作します:DB2_400、DB2_EXPRESS_C、DERBY_CLIENT、DERBY_EMBEDDED、FIREBIRD、H2_IN_MEMORY、HYPERSONIC_IN_MEMORY、HYPERSONIC_PERSISTENT、MSSQL、MYSQLGRESASE、POST、POST、POST、







Spring Rooをオープンソースだけでなく商用データベースでも使用できるため、その範囲が大幅に拡大します。 確かに、1つの注意点がありますが、市販のデータベースドライバーはオープンリポジトリで利用できないため、個別にダウンロードしてローカルのMavenリポジトリに配置する必要があります。







Spring Rooに「そのまま」提供されていない商用データベース、たとえばOracleデータベースの代替として最近使用されたTiberoデータベースでは、事態はさらに複雑です。













この記事では、そのようなデータベースを使用することは、Spring Rooに設定が含まれている商用データベースを使用するよりもそれほど難しくないことを示します。







Spring Rooのインストールについて簡単に説明します。 Spring Roo 2.0.0.RC2を機能させるには、Java 8と、Apache Mavenプロジェクトを自動化およびビルドするためのフレームワーク(できれば最新バージョン)が必要です。 Apache Mavenはmaven.apache.orgから取得します。 projects.spring.io/spring-rooのSpring Roo 2.0.0.RC2。







両方のフレームワークは、zipアーカイブとしてダウンロードされ、たとえばWindows用に、それぞれC:\ app \ mavenおよびC:\ app \ rooディレクトリにデプロイされます。 パス環境変数のフレームワークの実行可能カタログへのパスを登録する必要があります:C:\ app \ maven \ binおよびC:\ app \ roo \ bin これにより、必要なフレームワークのインストールは完了したと見なすことができます。 ユーザーセッションを再起動した後、フレームワークの操作性を確認します。







C:\ appディレクトリで、プロジェクトディレクトリを作成します。 C:\ app \ projectディレクトリに移動して、コマンドmvn-versionを入力します。 Apache Mavenフレームワークが正しくインストールされている場合、フレームワーク自体とjavaのバージョンが表示されます。







Apache Maven 3.5.0 (...) Maven home: C:\app\maven\bin\.. Java version: 1.8.0_121, vendor: Oracle Corporation Java home: C:\Program Files\Java\jdk1.8.0_121\jre Default locale: ru_RU, platform encoding: Cp1251 OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
      
      





必要なフレームワークをインストールしたら、Spring Rooでプロジェクトの作成を開始できます。 Spring Rooドキュメントのhelloプロジェクトの例を使用して、記事のタイトルで指定されているデータベースへの接続をテストします。







プロジェクトディレクトリで、プロジェクトを配置するhelloディレクトリを作成します。 helloディレクトリに移動し、rooコマンドを入力します。 Spring Rooが正しくインストールされている場合、Spring Rooコンソールプロンプトが表示されます。







  _ ___ _ __ _ __(_)_ __ __ _ _ __ ___ ___ / __| '_ \| '__| | '_ \ / _` | | '__/ _ \ / _ \ \__ \ |_) | | | | | | | (_| | | | | (_) | (_) | |___/ .__/|_| |_|_| |_|\__, | |_| \___/ \___/ |_| |___/ 2.0.0.RC2 Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER. roo>
      
      





これで、Spring Rooコンソールで、コマンドを入力してプロジェクトを作成できます。







 project setup --topLevelPackage com.foo jpa setup --provider HIBERNATE --database ORACLE
      
      





最初の行はアプリケーションパッケージの名前を定義し、2行目はORMプロバイダーとデータベース名を定義します。 ドキュメントのようにHYPERSONIC_IN_MEMORYではなくOracleデータベースを定義した場合、helloプロジェクトの追加の手動設定を行ってから、rooスクリプトコマンドに戻る必要があります。







最初に行うことは、Oracle jdbcドライバーojdbc7.jarをダウンロードし、ローカルのMavenリポジトリーにロードすることです。







 mvn install:install-file -Dfile=ojdbc7.jar -DgroupId=com.oracle -DartifactId=ojdbc7 -Dversion=12.1.0.2.0 -Dpackaging=jar
      
      





次に、pom.xmlプロジェクトファイルで、rooによって形成された依存関係を、jdbcドライバーバージョンを考慮した独自の依存関係に置き換えます。







Spring Rooプロジェクトでは、jdbcドライバーの依存関係をpom.xmlファイルの2つのセクションに記述する必要があります。 dependencyManagementセクションで:







 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.2.0</version> <type>jar</type> </dependency>
      
      





そして、依存関係セクションで:







 <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> </dependency>
      
      





次に、プロジェクトのapplication.propertiesで設定を行います。 ドライバークラス名、接続文字列、データベースユーザー名およびパスワードを指定します。







 spring.datasource.driver-class-name=oracle.jdbc.OracleDriver spring.datasource.url=jdbc\:oracle\:thin\:@//<ip>\:1521/<name > spring.datasource.password=<> spring.datasource.username=<> spring.jpa.hibernate.ddl-auto=create-drop
      
      





なぜなら データベースを一時テーブルで詰まらせないように、最後の行では、アプリケーションの起動時にテーブルを作成し、シャットダウン時にテーブルを削除するようにhibernateを構成します。







プロジェクトにこれらの変更を加えた後、Spring Rooコマンドラインからhelloアプリケーションを作成し続けることができます。







 entity jpa --class ~.domain.Timer field string --fieldName message --notNull repository jpa --all service --all web mvc setup web mvc view setup --type THYMELEAF web mvc controller --all --responseType THYMELEAF web mvc controller --all --pathPrefix /api
      
      





これらのコマンドの動作を簡単に説明します。 最初の2行は、1つのメッセージフィールドを持つタイマーエンティティを作成しますが、空にすることはできません。 次に、すべてのエンティティとサービスのリポジトリが作成されます。 このアプリケーションでは、エンティティは1つです-タイマー。 最後の行では、Spring MVCおよびTHYMELEAFテンプレートに基づいて、アプリケーションのWebパーツが作成されます。







すべて、タイマーエンティティを表示および編集し、作成されたOracleデータベースにデータを保存できるシンプルなアプリケーション。







次のコマンドでアプリケーションを実行できます。







 mvn spring-boot:run
      
      





その後、アプリケーションの結果が表示されます。













次に、アプリケーションがTiberoデータベースと連携するために必要な設定を検討します。







まず、Tiberoドライバーをダウンロードして、ローカルのMaven jdbcリポジトリーに配置する必要があります。







 mvn install:install-file -Dfile=tibero6-jdbc.jar -DgroupId=com.tmax.tibero -DartifactId=tibero6-jdbc -Dversion=6.0 -Dpackaging=jar
      
      





次に、dependencyManagementセクションのpom.xml依存関係で、jdbc OracleドライバーをTiberoに置き換えます。







 <dependency> <groupId>com.tmax.tibero</groupId> <artifactId>tibero6-jdbc</artifactId> <version>6.0</version> <type>jar</type> </dependency>
      
      





そして依存関係で:







 <dependency> <groupId>com.tmax.tibero</groupId> <artifactId>tibero6-jdbc</artifactId> </dependency>
      
      





プロジェクトのapplication.properties設定を変更します。







 spring.datasource.driver-class-name=com.tmax.tibero.jdbc.TbDriver spring.datasource.url=jdbc\:tibero\:thin\:@<ip>\:<port>:<dbname> spring.datasource.password=<> spring.datasource.username=<> spring.jpa.hibernate.ddl-auto=create-drop spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
      
      





構成の最後の行は、データベースの休止状態の方言を示しています。 Tibero方言が休止状態ライブラリにありません。 ただし、TiberoデータベースのメタデータはOracleメタデータとほぼ完全に一致することがわかっているため、アプリケーション設定でOracleの方言を指定できます。 この場合、Hibernateは、TiberoデータベースがOracleデータベースであるかのように動作します。







次のコマンドを使用して、変更したアプリケーションが以前と同じように機能していることを確認できます。







 mvn spring-boot:run
      
      





これで、アプリケーションはOracle方言を使用して商用Tiberoデータベースで動作します。







休止状態の方言を構成する別の方法は、特別な方言ライブラリをダウンロードすることです。 たとえば、Tiberoの場合、これはhibernate-tibero-dialect.jarです。 方言のバージョンは、ライブラリが対象とする休止状態のバージョンに依存します。







TmaxSoftのロシア駐在員事務所で、必要な休止状態の方言のバージョンを要求できます。







方言ライブラリのインストールを詳しく見てみましょう。







まず、Tiberoの休止状態の方言ライブラリをダウンロードして、ローカルのMavenリポジトリに配置する必要があります。







 mvn install:install-file -Dfile=hibernate-tibero-dialect.jar -DgroupId=com.tmax.tibero -DartifactId=hibernate-tibero-dialect -Dversion=6.0 -Dpackaging=jar
      
      





次に、方言ライブラリをpom.xml、dependencyManagementセクションに追加します。







 <dependency> <groupId>com.tmax.tibero</groupId> <artifactId>hibernate-tibero-dialect</artifactId> <version>6.0</version> <type>jar</type> </dependency>
      
      





そして依存関係で:







 <dependency> <groupId>com.tmax.tibero</groupId> <artifactId>hibernate-tibero-dialect</artifactId> </dependency>
      
      





方言クラスをプロジェクトのapplication.propertiesに追加します。







 spring.jpa.database-platform=org.hibernate.dialect.TiberoDialect
      
      





変更されたアプリケーションの操作性を検証します。







 mvn spring-boot:run
      
      





これで、アプリケーションはTibero用のhibernateダイアレクトライブラリを使用して商用Tiberoデータベースで動作します。







Tiberoの使用経験を皆様と共有しようとする出版物を引き続きご覧ください。








All Articles