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

SQL Anywhere 12.0.1 » SQL Anywhere サーバー プログラミング » JDBC サポート » JDBC クライアントアプリケーションからの接続

 

JDBC 接続についての注意

  • オートコミットの動作   JDBC の仕様により、デフォルトでは各データ操作文が実行されると、COMMIT が実行されます。現在、クライアント側の JDBC はコミットを実行し (オートコミットは true)、サーバー側の JDBC はコミットを実行しない (オートコミットは false) ように動作します。クライアント側とサーバー側のアプリケーションの両方で同じ動作を実行するには、次のような文を使用します。
    con.setAutoCommit( false );

    この文で、con は現在の接続オブジェクトです。オートコミットを true に設定することもできます。

  • トランザクションの独立性レベルの設定   トランザクションの独立性レベルを設定するには、次のいずれかの値を使用して、アプリケーションで Connection.setTransactionIsolation メソッドを呼び出す必要があります。

    SQL Anywhere JDBC 4.0 ドライバーの場合は、次を使用します。

    • sybase.jdbc4.sqlanywhere.IConnection.SA_TRANSACTION_SNAPSHOT
    • sybase.jdbc4.sqlanywhere.IConnection.SA_TRANSACTION_STATEMENT_SNAPSHOT
    • sybase.jdbc4.sqlanywhere.IConnection.SA_TRANSACTION_STATEMENT_READONLY_SNAPSHOT

    SQL Anywhere JDBC 3.0 ドライバーの場合は、次を使用します。

    • sybase.jdbc.sqlanywhere.IConnection.SA_TRANSACTION_SNAPSHOT
    • sybase.jdbc.sqlanywhere.IConnection.SA_TRANSACTION_STATEMENT_SNAPSHOT
    • sybase.jdbc.sqlanywhere.IConnection.SA_TRANSACTION_STATEMENT_READONLY_SNAPSHOT

    次の例は、JDBC 4.0 ドライバーを使用して、トランザクションの独立性レベルを SNAPSHOT に設定します。



    try
    {
        con.setTransactionIsolation(
            sybase.jdbc4.sqlanywhere.IConnection.SA_TRANSACTION_SNAPSHOT
        );
    }
    catch( Exception e )
    {
        System.err.println( "Error! Could not set isolation level" );
        System.err.println( e.getMessage() );
        printExceptions( (SQLException)e );
    }

    getTransactionIsolation と setTransactionIsolation メソッドの詳細については、[external link] http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/ にある java.sql.Connection インターフェイスのマニュアルを参照してください。

  • 接続デフォルト   サーバー側の JDBC からデフォルト値で新しい接続を作成するのは、getConnection( "jdbc:default:connection" ) の最初の呼び出しだけです。後続の呼び出しは、接続プロパティを変更せずに、現在の接続のラッパーを返します。最初の接続でオートコミットを false に設定すると、同じ Java コード内の後続の getConnection 呼び出しでは、オートコミットが false に設定された接続を返します。

    接続を閉じるときに接続プロパティをデフォルト値に復元し、後続の接続を標準の JDBC 値で取得できるようにしたい場合があります。これを行うには、次のコードを実行します。



    Connection con = 
        DriverManager.getConnection("jdbc:default:connection");
    
    boolean oldAutoCommit = con.getAutoCommit();
    try 
    {
         // main body of code here
    }
    finally 
    {
        con.setAutoCommit( oldAutoCommit );
    }

    ここに記載された説明は、オートコミットだけでなく、トランザクションの独立性レベルや読み込み専用モードなどのその他の接続プロパティにも適用されます。

    getTransactionIsolation、setTransactionIsolation、isReadOnly の各メソッドの詳細については、[external link] http://docs.oracle.com/javase/6/docs/technotes/guides/jdbc/ にある java.sql.Connection インターフェイスのマニュアルを参照してください。