日期:2014-05-20  浏览次数:21179 次

jdbc读取access数据,当数据为中文时,获取的只有空数据
请教下各位,我用jdbc 读取 access,获取字段NAME1的数据,但是当数据为中文时,返回的数据确为空,有什么方法解决吗?
附上代码:
Java code

    public static void main(String args[]) {
        String name;
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver"); 
        }
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        try {
            conn = DriverManager.getConnection( "jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=E:\\hib.mdb"); 
            stmt = conn.createStatement();
            rs = stmt.executeQuery("select top 5  * from test1");
            while (rs.next()) {
                name = rs.getString("NAME1");
                System.out.println("==="+name+"===");
            }
            conn.close();
        }
        catch (SQLException w) {
            System.out.println(w.getMessage());
        }
    }





运行结果:======


------解决方案--------------------
不是中文取的是空值,是因为你的编码问题,取出的是乱码。解决乱码问题,不同的数据库有不同的解决办法,access的没试过...........