我正在使用MS Access& MySQL,在访问输入这个词
我的代码是:
try{
String path ="src\\Database.accdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection c = DriverManager.getConnection(""
+ "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path);
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("select * from mytable");
rs.next();
jTextArea1.setText(rs.getString(1));
}catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.getMessage());
}
访问输出为??????????????
但是使用MYSQL并且输出是کوردستانیعیراق
为什么? 感谢
答案 0 :(得分:1)
尝试建立连接时,应为属性设置适当的字符集,例如:
java.util.Properties prop = new java.util.Properties();
prop.put("charSet", "UTF8"); // Not tested..
Connection c = DriverManager.getConnection(
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ="+path, prop);
查看JDBC-ODBC Bridge的文档以获取更多详细信息
答案 1 :(得分:1)
如果您只是尝试从MS Access数据库获取数据而不需要运行复杂查询,则可能需要查看Jackcess项目,这是一个本机的跨平台Java用于打开MS Access文件的API。它目前不支持运行SQL查询,但它 允许您访问所有数据,而无需通过(片状)jdbc-odbc桥。它还支持使用索引查找数据(通过IndexCursor)。
(免责声明,我是主要作者)。
答案 2 :(得分:0)
来自microsoft论坛:
If your connection character set is utf8, then you should run this query right
after connecting to DB:
SET NAMES 'utf8';
Also your DB and tables and columns should have utf8_general_ci or other type of
utf8 collation.
希望这有帮助