[Java規格支援機能]JDBC

アプリケーション開発において、データベースとのやりとりを行う場合、Java規格であるJDBCを使用します。

JDBC接続の取得を支援する機能を抽象化したのが、ConnectionFactoryです。

Java Beanとデータベースとのマッピングを行う機能(O/R Mapper)を抽象化したのが、PersistentManagerです。

検索SQLを隠ぺいして、検索キーをパラメータとして渡し検索結果のBeanを取得するQuerySearchManagerです。

javax.sql.DataSourceをラップして、java.sql.Connectionをラッパークラスでラップして返すWrappedDataSourceService

発行するSQLを定義したサービス定義と、データファイルを準備する事で、データベースのテーブルに対して、CREATE、INSERT、DELETE、DROP等のテーブル編集を行うTableCreatorService

データベースへの更新トランザクションを記録して、他のデータベースに対して更新トランザクションを発行する事で、2つのデータベースの同期を取るTransactionSynchronizerService

関連するパッケージは、以下です。

アプリケーション向けインタフェース ConnectionFactory

java.sql.Connectionを取得するための手続き及びそれに必要な情報をアプリケーションから隠蔽して、簡単にjava.sql.Connectionを取得できるようにします。

アプリケーション向けインタフェースConnectionFactoryを使った簡単なアプリケーションのサンプルを示します。

  1. import java.sql.Connection;
  2. import jp.ossc.nimbus.core.ServiceManagerFactory;
  3. import jp.ossc.nimbus.service.connection.ConnectionFactory;
  4. // ConnectionFactoryを取得
  5. ConnectionFactory factory = (ConnectionFactory)ServiceManagerFactory.getServiceObject("ConnectionFactory");
  6. // Connectionを取得する
  7. Connection con = factory.getConnection();

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.connection.JDBCConnectionFactoryServicejava.sql.DriverManagerからConnectionを取得する
jp.ossc.nimbus.service.connection.DataSourceConnectionFactoryServicejavax.sql.DataSourceからConnectionを取得する
jp.ossc.nimbus.service.connection.WrappedConnectionFactoryServiceConnectionFactoryサービスから取得したConnectionをラップする

アプリケーション向けインタフェース PersistentManager

JDBCのAPIを隠蔽して、SQLとJava BeansをSQLライクなクエリで紐付ける事で、簡単にデータベースとJava Beansをマッピングします。

アプリケーション向けインタフェースPersistentManagerを使った簡単なアプリケーションのサンプルを示します。

  1. import java.sql.Connection;
  2. import jp.ossc.nimbus.core.ServiceManagerFactory;
  3. import jp.ossc.nimbus.service.connection.ConnectionFactory;
  4. import jp.ossc.nimbus.service.connection.PersistentManager;
  5. // ConnectionFactoryを取得
  6. ConnectionFactory factory = (ConnectionFactory)ServiceManagerFactory.getServiceObject("ConnectionFactory");
  7. // Connectionを取得する
  8. Connection con = factory.getConnection();
  9. // PersistentManagerを取得
  10. PersistentManager pm = (PersistentManager)ServiceManagerFactory.getServiceObject("PersistentManager");
  11. // Userオブジェクトを生成する
  12. User user = new User();
  13. user.setName("Yamada tarou");
  14. user.setAge(20);
  15. user.setSex(1);
  16. // Userオブジェクトを永続化する
  17. int updateCount = pm.persist(
  18. con,
  19. "insert into MYUSER(name, age, sex) values(?<-{Name}, ?<-{Age}, ?<-{Sex})",
  20. user
  21. );
  22. // Userオブジェクトをロードする
  23. user = (User)pm.loadQuery(
  24. con,
  25. "select name->{Name}, age->{Age}, sex->{Sex} from MYUSER",
  26. null,
  27. new User()
  28. );

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.connection.DefaultPersistentManagerServiceデフォルト実装

アプリケーション向けインタフェース QuerySearchManager

検索SQLを隠ぺいして、検索キーをパラメータとして渡し検索結果のBeanを取得します。

アプリケーション向けインタフェースQuerySearchManagerを使った簡単なアプリケーションのサンプルを示します。

  1. import java.sql.Connection;
  2. import jp.ossc.nimbus.core.ServiceManagerFactory;
  3. import jp.ossc.nimbus.service.connection.QuerySearchManager;
  4. // QuerySearchManagerを取得
  5. QuerySearchManager qsm = (QuerySearchManager)ServiceManagerFactory.getServiceObject("QuerySearchManager");
  6. // データベースからUserを検索
  7. String userId = ...;
  8. User user = qsm.search(userId);

実装サービスの一覧は以下のとおりです。

実装サービス実装概要
jp.ossc.nimbus.service.connection.DefaultQuerySearchManagerServiceデフォルト実装

サンプルは、以下。