java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间不匹配
import java.sql.*;
public class example {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
System.out.print(e);
}
try{
con = DriverManager.getConnection("jdbc:odbc:star","","");
sql = con.createStatement();
rs = sql.executeQuery("SELECT * FROM employee WHERE salary > 1900");
while(rs.next()){
String number = rs.getString(1);
String name = rs.getString(2);
Date date = rs.getDate("birthday");
double salary = rs.getDouble("salary");
System.out.printf("% - 4s",number);
System.out.printf("% - 6s",name);
System.out.printf("% - 15s",date.toString());
System.out.printf("% 6s\n",salary);
}
con.close();
}
catch(SQLException e){
System.out.println(e);
}
}
}
以上代码在eclipse上运行出现错误,系统是64位的,用的是sysWoW64中的odbcad32创建的数据源,求解啊,小白一个= =
http://blog.csdn.net/gyarenas/article/details/21699215
你确定你的url路径是正确的?
Win7 64控制面板里面直接打开ODBC就只有Mysql,添加Access会出错:“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配”,到网上查了一下,直接运行C:/Windows/SysWOW64/odbcad32.exe 就是32位ODBC,这个里面倒是能添加Access数据库了。然后用我的64位Java编译,运行后还是有错:“指定之DNS中的驱动程式和应用程式架 构不相符”,终于明白64位Java要对应64位ODBC,于是安装了Microsoft Office 2010 64bit 这回使用控制面板里面的64位ODBC终于能加Access数据库了,Java编译运行也正常了。此时我在使用目录里面的32位ODBC反而不行了(之前 的32位Office卸载了)提示:“找不到Microsoft Access Driver (*.mdb,*.accdb)ODBC驱动程序的安装例程,请重新安装驱动程序”。据我分析如果安装32位Java则用系统目录里的32位Odbc也是 可以的,所以软件的构架要相对应。
终于知道了,蛋疼啊。。问题出在odbc上
这里应该写你连接的数据库的url路径,后面两个引号应该是写数据库用户名和密码
ODBC是否驱动是否安装正确,