ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →CData
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
JDBI は、Fluent スタイルとSQL オブジェクトスタイルという2つの異なるスタイルAPI を公開する、Java 用のSQL コンビニエンスライブラリです。CData JDBC Driver for PostgreSQL は、Java アプリケーションとリアルタイムPostgreSQL データ のデータ連携を実現します。これらの技術を組み合わせることによって、PostgreSQL データ へのシンプルなコードアクセスが可能になります。ここでは、基本的なDAO(Data Access Object )とそれに付随するPostgreSQL データ の読み書きのためのコードの作成について説明します。
以下のインターフェースは、実装されるSQL ステートメントごとに単一のメソッドを作成するためのSQL オブジェクトの正しい動作を宣言します。
public interface MyOrdersDAO {
//insert new data into PostgreSQL
@SqlUpdate("INSERT INTO Orders (ShipCountry, ShipCity) values (:shipCountry, :shipCity)")
void insert(@Bind("shipCountry") String shipCountry, @Bind("shipCity") String shipCity);
//request specific data from PostgreSQL (String type is used for simplicity)
@SqlQuery("SELECT ShipCity FROM Orders WHERE ShipCountry = :shipCountry")
String findShipCityByShipCountry(@Bind("shipCountry") String shipCountry);
/*
* close with no args is used to close the connection
*/
void close();
}
必要な接続プロパティを収集し、PostgreSQL に接続するための適切なJDBC URL を作成します。
PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
JDBC URL の構成については、PostgreSQL JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.postgresql.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
PostgreSQL の接続文字列は、通常次のようになります。
jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;
構成済みのJDBC URL を使用して、DAO インターフェースのインスタンスを取得します。以下に示す特定のメソッドはインスタンスにバインドされたハンドルを開くため、ハンドルとバインドされたJDBC 接続を開放するには、インスタンスを明示的に閉じる必要があります。
DBI dbi = new DBI("jdbc:postgresql:User=postgres;Password=admin;Database=postgres;Server=127.0.0.1;Port=5432;");
MyOrdersDAO dao = dbi.open(MyOrdersDAO.class);
//do stuff with the DAO
dao.close();
PostgreSQL への接続を開いた状態で以前定義したメソッドを呼び出すだけで、PostgreSQL のOrders エンティティからデータを取得できます。
//disply the result of our 'find' method
String shipCity = dao.findShipCityByShipCountry("USA");
System.out.println(shipCity);
以前定義した方法を使用すれば、PostgreSQL にデータを書き込むことも簡単になります。
//add a new entry to the Orders entity
dao.insert(newShipCountry, newShipCity);
JDBI ライブラリはJDBC 接続を処理できるため、CData JDBC Driver for PostgreSQL と統合することで、SQL Object API for PostgreSQL を簡単に作成できます。今すぐ無料トライアルをダウンロードし、Java アプリケーションでリアルタイムPostgreSQL を操作しましょう。