Exception in thread "main" java.lang.UnsupportedOperationException  
  at sun.jdbc.odbc.JdbcOdbcConnection.createStatement(JdbcOdbcConnection.java:1724)
代码如下:
Statement stmt = con.createStatement(
        ResultSet.TYPE_SCROLL_SENSITIVE, 
            ResultSet.CONCUR_UPDATABLE,ResultSet.HOLD_CURSORS_OVER_COMMIT);

解决方案 »

  1.   

    JDBC/ODBC 驱动仅支持 JDBC 2.0 版本中的方法。而三个参数的 createStatement 方法是 JDBC 3.0 规范中新增的,因此 JDBC/ODBC 驱动不支持该方法。PS:实际应用中,很少会去使用 JDBC/ODBC 驱动的,至少我从来没用过。JDBC/ODBC 驱动在性能上远远无法和 JDBC type 4 驱动相比的,支持的 JDBC 版本也很低(JDBC 最新版本是 4.0,像 MySQL, Oracle 最新的 JDBC 驱动都支持 4.0 了)。建议:把 JDBC/ODBC 直接扔掉,把 Access 这种办公用品型数据库直接扔掉!
      

  2.   

    通过 J2SE API 文档也可以看出哪个方法是属于哪一个 JDBC 版本的。每个方法的 API 说明最下一行有句“从以下版本开始:”。没有,表示该方法是 JDK 初始化版本的,因此属于 JDBC 1.0 规范中的
    1.2,表示该方法是 JDK 1.2 新增的,因此属于 JDBC 2.0 规范中的
    1.4,表示该方法是 JDK 1.4 新增的,因此属于 JDBC 3.0 规范中的
    1.6,表示该方法是 JDK 1.6 新增的,因此属于 JDBC 4.0 规范中的要看 JDBC 驱动能支持什么版本,通过 Connection 得到 DatabaseMeta 对象就可以了:DatabaseMeta meta = connection.getMeta();
    System.out.println("driver major version: " + meta.getDriverMajorVersion());
    System.out.println("driver minor version: " + meta.getDriverMinorVersion());
      

  3.   

    上面代码中的第一行写错了,订正一下:DatabaseMeta meta = connection.getMetaData();
      

  4.   

    driver major version: 2
    driver minor version: 1
    这是 jdbc/odbc 的输出结果。driver major version: 2
    driver minor version: 2
    这是 jdbc 的输出结果。请问,我装的是 jdk1.6,数据库是 sql2000,
    怎么用 JDBC 3.0 或 4.0 连?
    谢谢了。