DbUtils使用JDBC-ODBC抛出异常java.lang.UnsupportedOperationException

Junas 发布于 2012/03/22 12:09
阅读 750
收藏 0

环境:Win32/JDK1.6.0_31/MySQL5.5

首先我使用JDBC-ODBC数据源连接数据库成功!

然后我用DbUtils访问数据库 抛出异常java.lang.UnsupportedOperationException

但我用Jdbc-DriverManager访问数据库正常!

package test;

import java.sql.*;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;

public class Test {
    // 测试
    public static void main(String[] args) throws Exception {
        Connection conn = null;
        try {
            conn = getConnectionByODBCName();
            test1(conn);
            test2(conn);
        }
        finally {
            conn.close();
        }
    }

    // 测试 JDBC-Driver
    static void test1(Connection conn) throws Exception {
        conn = getConnectionByODBCName();
        ResultSet rs = conn.createStatement().executeQuery("select * from table_test");
        while (rs.next())
            System.out.println(rs.getString("name"));
    }

    // 测试 DbUtils
    static void test2(Connection conn) throws Exception {
        ResultSetHandler<String> h = new ResultSetHandler<String>(){
            @Override
            public String handle(ResultSet rs) throws SQLException {
                while (rs.next())
                    System.out.println(rs.getString("name"));
                return null;
            }
        };
        new QueryRunner().query(conn, "select * from table_test", h);
    }

    // 连接
    public static Connection getConnectionByODBCName() throws Exception {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        return DriverManager.getConnection("jdbc:odbc:myds4mysql");

        //Class.forName("com.mysql.jdbc.Driver");
        //return DriverManager.getConnection("jdbc:mysql:///test", "root", "123456");
    }
}

以下是问题补充:

@Junas:原因在哪:如果使用JDBC,不使用ODBC数据源连接数据库,那么使用DbUtils是正常的.. (2012/03/22 12:14)
加载中
0
红薯
红薯
jdbc-odbc 不行啦,很多 jdbc 的方法它都不支持的,别用
Junas
Junas
非常感谢!
1
zheng-lee
zheng-lee

引用来自“一桶浆糊”的答案

公司SQLServer使用JDBC连不上,只能用ODBC数据源,项目用到有2个数据库,同事说ODBC切换数据库方便

ODBC切换数据库方便 只是一面之词,而且,为什么要切换数据库?

jdbc-odbc方式依赖odbc的支持,很多jdbc规范并不能完整支持

Junas
Junas
明白了,谢谢bluesky8318
0
Junas
Junas

公司SQLServer使用JDBC连不上,只能用ODBC数据源,项目用到有2个数据库,同事说ODBC切换数据库方便

返回顶部
顶部