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

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - Programmierung » JDBC-Unterstützung » Von einer JDBC-Clientanwendung aus verbinden

 

Hinweise zu JDBC-Verbindungen

  • Automatischer Festschreibmodus (Autocommit)   Die JDBC-Spezifikation erfordert, dass standardmäßig nach jeder Datenänderungsanweisung ein COMMIT ausgeführt wird. Derzeit ist das clientseitige JDBC-Verhalten, die Transaktion festzuschreiben (Autocommit ist TRUE), und das serverseitige Verhalten ist, sie nicht festzuschreiben (Autocommit ist FALSE). Um in clientseitigen und serverseitigen Anwendungen dasselbe Verhalten zu erhalten, können Sie eine Anweisung, wie die folgende, verwenden:
    con.setAutoCommit( false );

    In dieser Anweisung ist con das aktuelle Verbindungsobjekt. Sie könnten auch Autocommit auf TRUE setzen.

  • Isolationsstufe der Transaktion einstellen   Um die Isolationsstufe der Transaktion einzustellen, muss die Anwendung die Connection.setTransactionIsolation-Methode mit einen der folgenden Werte aufrufen.

    Verwenden Sie für den SQL Anywhere JDBC 4.0-Treiber Folgendes:

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

    Verwenden Sie für den SQL Anywhere JDBC 3.0-Treiber Folgendes:

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

    Im folgenden Beispiel wird mithilfe des JDBC 4.0-Treibers die Isolationsstufe der Transaktion auf SNAPSHOT gesetzt.



    try
    {
        connection.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 );
    }

    Weitere Hinweise zu den Methoden getTransactionIsolation und setTransactionIsolation finden Sie in der Dokumentation zur java.sql.Connection-Schnittstelle unter [external link] Java.com.

  • Standardwerte für die Verbindung   Bei der serverseitigen JDBC erstellt nur der erste Aufruf von getConnection( "jdbc:default:connection" ) eine neue Verbindung mit den Standardwerten. Nachfolgende Aufrufe geben einen Wrapper der aktuellen Verbindung mit allen unveränderten Verbindungseigenschaften zurück. Wenn Sie bei der ersten Verbindungsaufnahme Autocommit auf FALSE setzen, geben alle nachfolgenden getConnection-Aufrufe innerhalb desselben Java-Codes eine Verbindung mit Autocommit mit dem Wert FALSE zurück.

    Es kann sinnvoll sein, die Verbindungseigenschaften beim Schließen der Verbindung auf die Standardwerte zurücksetzen zu lassen, damit nachfolgende Verbindungen mit Standard-JDBC-Werten eingerichtet werden. Der folgende Code legt dies fest:



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

    Diese Vorgänge beziehen sich nicht nur auf Autocommit, sondern auch auf andere Vebindungseigenschaften, wie etwa die Isolationsstufe von Transaktionen und den reinen Lesemodus.

    Weitere Hinweise zu den Methoden getTransactionIsolation, setTransactionIsolation und isReadOnly finden Sie in der Dokumentation zur java.sql.Connection-Schnittstelle unter [external link] Java.com.