首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JDBC-ODBC桥中使用保存点: UnsupportedOperationException

在JDBC-ODBC桥中使用保存点: UnsupportedOperationException
EN

Stack Overflow用户
提问于 2014-11-10 14:16:53
回答 1查看 171关注 0票数 0

我已经用MS Access连接了NetBeans集成开发环境,在进行事务处理时,我得到了这个错误。似乎保存点不是supported...Please引导我..

代码语言:javascript
复制
             Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            conn = DriverManager.getConnection("jdbc:odbc:cse");
            Statement stmt1, stmt2, stmt3;
                     System.out.println("Statements created");
            conn.setAutoCommit(false);
            String query1 = " update registration set id='105' " + 
                            "where first = 'Sumit' ";
            String query2 = " update registration set id='106' " + 
                            "where first = 'Zayed' ";
             System.out.println(" Queries created");


            stmt1 = conn.createStatement();
            System.out.println(" Connection created");
            Savepoint s1 = conn.setSavepoint("sp1");
             System.out.println(" Savept created");

            stmt2 = conn.createStatement();

            stmt1.executeUpdate(query1);
            stmt2.executeUpdate(query2);

            conn.commit();

            stmt3 = conn.createStatement();

            stmt1.close();
            stmt2.close();
            conn.releaseSavepoint(s1);
            conn.close();

错误是语句已创建查询已创建连接已创建错误: java.lang.UnsupportedOperationException

EN

回答 1

Stack Overflow用户

发布于 2014-11-10 17:53:06

JDBC-ODBC Bridge显然根本不支持保存点。但是,UCanAccess JDBC驱动程序支持未命名的保存点:

代码语言:javascript
复制
String connStr = "jdbc:ucanaccess://C:/__tmp/test.mdb";
try (Connection conn = DriverManager.getConnection(connStr)) {
    conn.setAutoCommit(false);
    try (Statement s = conn.createStatement()) {
        s.executeUpdate("UPDATE ucaTest SET Field2='NEWVALUE1' WHERE ID=1");
    }
    java.sql.Savepoint sp1 = conn.setSavepoint();
    try (Statement s = conn.createStatement()) {
        s.executeUpdate("UPDATE ucaTest SET Field2='NEWVALUE2' WHERE ID=2");
    }
    conn.rollback(sp1);
    conn.commit();
} catch (Exception e) {
    e.printStackTrace(System.out);
}

有关使用UCanAccess的更多信息,请参见

Manipulating an Access database from Java without ODBC

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26837855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档