我正在创建一个带ms访问权限的数据库,我在odbca32上的数据源上添加了这个数据库。但是当我创建连接时,我无法看到表格中的内容我创建了...继承人代码..
import java.sql.*;
public class db {
Connection con;
Statement st;
ResultSet rs;
public db(){
connect();
}
public void connect(){
try{
String driver="sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
String db="jdbc:odbc:db";
con=DriverManager.getConnection(db);
st=con.createStatement();
String sql="select * from Table1";
rs = st.executeQuery(sql);
while(rs.next()){
String fname=rs.getString("Fname");
String lname=rs.getString("Lname");
System.out.println(fname+" "+lname);
}
}catch(Exception ex){
}
}
public static void main(String[] args) {
new db();
}
}
那就是我得到的错误......
java.sql.SQLException:[Microsoft] [?????????? ???????????? ???????? ODBC] ?? ??????????? DSN ???????? ????????? ?????????????? ?????? ??? ???????????? ???????? ??? ??? ????????? at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) 在java.sql.DriverManager.getConnection(DriverManager.java:571) 在java.sql.DriverManager.getConnection(DriverManager.java:233) 在db.connect(db.java:20) 在db。(db.java:10) 在db.main(db.java:39)
答案 0 :(得分:0)
我从您的疯狂错误消息中得出的最佳猜测是您的连接字符串不正确。对于MS Access数据库,连接字符串需要包含(至少)文件名。
根据another answer on StackOverflow,你需要这样的东西:
String db = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=databasefile.mdb"