jdbc 连接access的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 00:26:36
代码如下:
public static Connection getConn(){
Connection conn=null;
String url="jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=D:/Access2003/test.mdb";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

conn=DriverManager.getConnection(url,"","");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
错误提示:
java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
我已经添加了access的jdbc驱动,为什么提示找不到数据源,这种方式不是不用数据源的吗?
改用odbc的方式连接就没事,但是不能查询某个字段,查询所有的就没事,例:
select username from user,会报 参数 期待为1 的错误,但是 select * from user就能正常运行,为什么呀?

public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dburl ="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\project\\Core_Java\\db\\yxbdata.mdb";//此为NO-DSN方式
//String dburl ="jdbc:odbc:odbcName";//此为ODBC连接方式
conn = DriverManager.getConnection(dburl);
Statement stmt=conn.createStatement();
// stmt.executeUpdate("insert into class(classid,classname) values(4,'arthurs')");
// ResultSet rs=stmt.executeQuery("select Top 20 * from MobileSection");
ResultSet rs=stmt.executeQuery("select * from class");
while(rs.next()){
System.out.println(rs.getString("classId")+","+rs.getString("classname"));
}
} catch (Exception e) {
e.printStackTrace();
}finally{