nimbus (1.2.4) | 2018-01-25 20:02 |
nimbus-sample (1.2.4) | 2018-01-26 17:06 |
アプリケーション開発において、データベースとのやりとりを行う場合、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。
関連するパッケージは、以下です。
java.sql.Connectionを取得するための手続き及びそれに必要な情報をアプリケーションから隠蔽して、簡単にjava.sql.Connectionを取得できるようにします。
アプリケーション向けインタフェースConnectionFactoryを使った簡単なアプリケーションのサンプルを示します。
- import java.sql.Connection;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.connection.ConnectionFactory;
- // ConnectionFactoryを取得
- ConnectionFactory factory = (ConnectionFactory)ServiceManagerFactory.getServiceObject("ConnectionFactory");
- // Connectionを取得する
- Connection con = factory.getConnection();
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.connection.JDBCConnectionFactoryService | java.sql.DriverManagerからConnectionを取得する |
jp.ossc.nimbus.service.connection.DataSourceConnectionFactoryService | javax.sql.DataSourceからConnectionを取得する |
jp.ossc.nimbus.service.connection.WrappedConnectionFactoryService | ConnectionFactoryサービスから取得したConnectionをラップする |
JDBCのAPIを隠蔽して、SQLとJava BeansをSQLライクなクエリで紐付ける事で、簡単にデータベースとJava Beansをマッピングします。
アプリケーション向けインタフェースPersistentManagerを使った簡単なアプリケーションのサンプルを示します。
- import java.sql.Connection;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.connection.ConnectionFactory;
- import jp.ossc.nimbus.service.connection.PersistentManager;
- // ConnectionFactoryを取得
- ConnectionFactory factory = (ConnectionFactory)ServiceManagerFactory.getServiceObject("ConnectionFactory");
- // Connectionを取得する
- Connection con = factory.getConnection();
- // PersistentManagerを取得
- PersistentManager pm = (PersistentManager)ServiceManagerFactory.getServiceObject("PersistentManager");
- // Userオブジェクトを生成する
- User user = new User();
- user.setName("Yamada tarou");
- user.setAge(20);
- user.setSex(1);
- // Userオブジェクトを永続化する
- int updateCount = pm.persist(
- con,
- "insert into MYUSER(name, age, sex) values(?<-{Name}, ?<-{Age}, ?<-{Sex})",
- user
- );
- // Userオブジェクトをロードする
- user = (User)pm.loadQuery(
- con,
- "select name->{Name}, age->{Age}, sex->{Sex} from MYUSER",
- null,
- new User()
- );
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.connection.DefaultPersistentManagerService | デフォルト実装 |
検索SQLを隠ぺいして、検索キーをパラメータとして渡し検索結果のBeanを取得します。
アプリケーション向けインタフェースQuerySearchManagerを使った簡単なアプリケーションのサンプルを示します。
- import java.sql.Connection;
- import jp.ossc.nimbus.core.ServiceManagerFactory;
- import jp.ossc.nimbus.service.connection.QuerySearchManager;
- // QuerySearchManagerを取得
- QuerySearchManager qsm = (QuerySearchManager)ServiceManagerFactory.getServiceObject("QuerySearchManager");
- // データベースからUserを検索
- String userId = ...;
- User user = qsm.search(userId);
実装サービスの一覧は以下のとおりです。
実装サービス | 実装概要 |
jp.ossc.nimbus.service.connection.DefaultQuerySearchManagerService | デフォルト実装 |
サンプルは、以下。