iAnywhere JDBC ドライバを使用すると、データベース・メタデータをいつでも使用できます。
jConnect を使用する JDBC アプリケーションからデータベース・システム・テーブル (データベース・メタデータ) にアクセスする場合は、jConnect システム・オブジェクトのセットをデータベースに追加してください。これらのプロシージャは、すべてのデータベースにデフォルトでインストールされています。dbinit -i オプションを指定すると、このインストールは行われません。
jConnect システム・オブジェクトをデータベースに追加する方法の詳細については、jConnect JDBC ドライバの使用を参照してください。
次に示す完全な Java アプリケーションはコマンド・ライン・プログラムであり、稼働中のデータベースに接続して、一連の情報をコマンド・ラインに出力し、終了します。
すべての JDBC アプリケーションは、データベースのデータを処理する際、最初に接続を確立します。
次の例は、通常のクライアント/サーバ接続である外部接続を示しています。データベース・サーバ内で動作している Java クラスから内部接続を作成する方法については、サーバ側 JDBC クラスからの接続の確立を参照してください。
次に示すのは、接続の確立に使用するメソッドのソース・コードです。ソース・コードは、samples-dir\SQLAnywhere\JDBC ディレクトリの JDBCConnect.java ファイルにあります。この例では、iAnywhere JDBC ドライバの JDBC 3.0 バージョンを使用してデータベースに接続します。jConnect 6.0.5 ドライバを使用するには、ianywhere.ml.jdbcodbc.jdbc3.IDriver
を com.sybase.jdbc3.jdbc.SybDriver
に置き換えます。jConnect 6.0.5 ドライバを使用する場合は、接続文字列も変更する必要があります。その場合に使用するコードは、ソース・コードにコメントとして記載されています。
import java.io.*; import java.sql.*; public class JDBCConnect { public static void main( String args[] ) { try { // Select the JDBC driver. May throw a SQLException. // Choices are jConnect 6.0 driver // or iAnywhere JDBC 3.0 driver. // Currently, we use the iAnywhere JDBC 3.0 driver. DriverManager.registerDriver( (Driver) Class.forName( // "com.sybase.jdbc3.jdbc.SybDriver").newInstance() "ianywhere.ml.jdbcodbc.jdbc3.IDriver").newInstance() ); // Create a connection. Choices are TDS using jConnect, // Sun's JDBC-ODBC bridge, or the iAnywhere JDBC driver. // Currently, we use the iAnywhere JDBC driver. Connection con = DriverManager.getConnection( // "jdbc:sybase:Tds:localhost:2638", "DBA", "sql"); // "jdbc:odbc:driver=SQL Anywhere 11;uid=DBA;pwd=sql" ); "jdbc:ianywhere:driver=SQL Anywhere 11;uid=DBA;pwd=sql" ); // Create a statement object, the container for the SQL // statement. May throw a SQLException. Statement stmt = con.createStatement(); // Create a result set object by executing the query. // May throw a SQLException. ResultSet rs = stmt.executeQuery( "SELECT ID, GivenName, Surname FROM Customers"); // Process the result set. while (rs.next()) { int value = rs.getInt(1); String FirstName = rs.getString(2); String LastName = rs.getString(3); System.out.println(value+" "+FirstName+" "+LastName); } rs.close(); stmt.close(); con.close(); } catch (SQLException sqe) { System.out.println("Unexpected exception : " + sqe.toString() + ", sqlstate = " + sqe.getSQLState()); System.exit(1); } catch (Exception e) { e.printStackTrace(); System.exit(1); } System.exit(0); } } |
接続サンプルの動作
接続サンプルの実行
サーバ側 JDBC クラスからの接続の確立
JDBC 接続についての注意
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |