Symfoware Server アプリケーション開発ガイド(JDBCドライバ編) - FUJITSU - |
目次
索引
![]() ![]() |
第2章 アプリケーションの設計 |
コネクションについて、以下に分類して説明します。
コネクションとは
コネクションの接続手段
コネクションの接続
コネクションの切断
コネクションとは、JDBCドライバを使用するアプリケーションがSymfoware Serverにアクセスするために結んだ接続関係のことです。アプリケーションがデータベースシステムとコネクションをもつことにより、そのデータベースシステムの資源を操作することができます。
JDBCドライバを使用するアプリケーションからデータベースに接続するためには、以下の2種類の手段があります。
パッケージ |
API |
概要 |
---|---|---|
javax.sql |
DataSourceインタフェース |
アプリケーション内でJDBCデータソースを使用して、データベースに接続する方法 |
java.sql |
DriverManagerクラス |
アプリケーション内で、接続先のURLを直接指定する方法 |
アプリケーションサーバ上で運用する場合、DataSourceインタフェースの利用を推奨します。
本書では、DataSourceインタフェースを利用した場合を主に説明します。
データソースの設定方法については、“JDBCデータソース登録ツール”を参照してください。
クライアント上でJavaアプレットを運用する場合、DriverManagerクラスを利用してください。DriverManagerクラスの利用については、“DriverManagerクラスからの接続”を参照してください。
JDBCドライバを使用するアプリケーションとデータベースとのコネクションの接続は、DataSourceインタフェースのgetConnectionメソッドで行います。また、コネクションを接続することにより、SQL文を実行することができます。
JDBCドライバを使用するアプリケーションとSymfoware Serverとのコネクションの切断は、Connectionインタフェースのcloseメソッドで行います。コネクションの切断は、DataSourceインタフェースのgetConnectionメソッドで接続したコネクションに対して実行できます。また、トランザクションは終了した状態で実行します。トランザクション中にコネクションが切断されると、トランザクションも終了します。
以下に、コネクションのプログラミング概要を示します。
Hashtable env = new Hashtable(); (1) env.put(Context.INITIAL_CONTEXT_FACTORY "com.fujitsu.symfoware.jdbc2.jndisp.SYMContextFactory"); (1) env.put(Context.PROVIDER_URL,"SYM://myhost:10326"); (1) InitialContext ctx = new InitialContext(env); (1) DataSource ds = (DataSource)ctx.lookup("jdbc/ds1"); (2) Connection con = ds.getConnection(); (3) : con.setAutoCommit(false); (4) : con.commit(); (4) con.close(); (5) |
(1) JNDI環境の指定
(2) JDBCデータソースの取得
(3) データベースへの接続
(4) トランザクション操作
(5) データベースへの接続の切断
以下に各項目のプログラミング方法を示します。
JNDI APIを使用して下記の形式で指定します。
【記述形式】
Hashtable env = new Hashtable();env.put(Context.INITIAL_CONTEXT_FACTORY,<factory_class_name>);
env.put(Context.PROVIDER_URL,<provider_url>);
InitialContext ctx = new InitialContext(env);
【引数】
<factory_class_name>サービスプロバイダのクラス名(com.fujitsu.symfoware.jdbc2.jndisp.SYMContextFactory)を指定します。省略することはできません。
<provider_url>サービスプロバイダがネーミングサービスにアクセスするためのURLを指定します。省略することはできません。記述形式は以下のとおりです。
SYM://<host>[:<port_no>]
<host>ネーミングサービスが動作しているサーバのホスト名またはIPアドレスを指定します。省略することはできません。
<port_no>ネーミングサービスに接続する際のポート番号を指定します。省略した場合、10326になります。
JNDIのコンテキストを使用して、JDBCデータソースを取得します。
【記述形式】
DataSource ds =(DataSource)ctx.lookup("jdbc/<datasource_name>");
【引数】
<datasource_name>JDBCデータソース登録時に指定した、JDBCデータソース名を指定します。省略することはできません。
データベースと接続します。
DataSourceインタフェースのgetConnectionメソッドを使用します。
setAutoCommitメソッドで自動コミットを無効にした場合、トランザクションを明示的に終了させる必要があります。
Connectionインタフェースのcommitメソッドやrollbackメソッドを使用して、トランザクションを終了します。
データ参照/更新などの処理の終了後、データベースとの接続を切断する必要があります。
Connectionインタフェースのcloseメソッドを使用します。
目次
索引
![]() ![]() |