Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - プログラミング » SQL Anywhere データ・アクセス API » SQL Anywhere JDBC ドライバ

 

JDBC クライアント・アプリケーションからの接続

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.IDrivercom.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 接続についての注意