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 客户端应用程序连接

 

有关 JDBC 连接的几点说明

  • 自动提交行为   JDBC 规范要求在每个数据修改语句后缺省执行 COMMIT。当前,客户端 JDBC 行为是提交(自动提交为 true),服务器端行为是不提交(自动提交为 false)。要在客户端和服务器端应用程序中均获得相同的行为,您可以使用诸如以下的语句:
    con.setAutoCommit( false );

    在此语句中,con 是当前连接对象。您也可以将自动提交设置为 true。

  • 连接缺省值   从服务器端的 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 方法的详细信息,请参见关于 java.sql.Connection 接口的文档。