我有以下代码
import java.sql.*;
public class UserLogin {
public static void main(String[] args) {
try {
// Load MS accces driver class
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// C:\\databaseFileName.accdb" - location of your database
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + "C:\\AGENDAS\\Agenda.accdb";
// specify url, username, pasword - make sure these are valid
Connection conn = DriverManager.getConnection(url, "Java2016", "Java2016");
System.out.println("Connection Succesfull");
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
}
}
并抛出下一个错误
有例外!
sun.jdbc.odbc.JdbcOdbcDriver
如何建立连接?
答案 0 :(得分:0)
如果您已经使用了JDK8,我认为您获得的异常是“未找到类”异常。但是由于你没有发布完整的堆栈跟踪,所以它不确定 - 但是,输出中的类名是该方向的强指针。
请检查JDBC URL初始化的来源,我会感兴趣。在驱动程序文档中,未列出此样式:
9.3.5 Bridge支持的JDBC URL是什么? Bridge驱动程序使用odbc子协议。这个子协议的URL是 形式:
jdbc:odbc:<data-source-name>[<attribute-name>=<attribute-value>]*
例如:
jdbc:odbc:sybase jdbc:odbc:mydb;UID=me;PWD=secret jdbc:odbc:ora123;Cachesize=300
此外,这是我在ODBC驱动程序的状态中发现的。
JDBC-ODBC Bridge的状态
JDBC-ODBC Bridge应被视为过渡解决方案;它 将在JDK 8中删除。
http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/bridge.html
由于您当前正在启动该项目,因此似乎不使用JDBC-ODBC桥。而是使用JDK8并找到涉及SQL.Server express edition的解决方案...
答案 1 :(得分:0)
由于您正在使用Access,我建议使用UCanAccess
这是一个开源Java JDBC
驱动程序实现,允许Java开发人员和jdbc客户端程序读/写Microsoft Access数据库({{1} }和.mdb
个文件)。
我认为它比传统的.accdb
桥更简单,更有支持。
下载JDBC-ODBC
驱动程序后,您就可以设置连接了:
UCanAccess