[英]How to connect my Access Database using Java
我有以下代码
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
如何建立连接?
如果您已经在使用JDK8,我想您得到的异常是“找不到类”异常。 但是由于您没有发布完整的堆栈跟踪信息,因此不确定-但是,输出中的类名称是该方向上的强指针。
请检查您初始化JDBC URL的来源,我对此很感兴趣。 在驱动程序文档中,未列出此样式:
9.3.5网桥支持哪些JDBC URL? 桥驱动程序使用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桥的状态
JDBC-ODBC桥应被视为过渡解决方案。 它将在JDK 8中删除。
http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/bridge.html
由于您当前正在启动项目,因此最好不要使用JDBC-ODBC桥。 而是使用JDK8并找到涉及SQL.Server Express Edition的解决方案...
由于您正在使用Access,因此我建议您使用UCanAccess
,它是一种开放源Java JDBC
驱动程序实现,该实现允许Java开发人员和jdbc客户端程序读取/写入Microsoft Access数据库( .mdb
和.accdb
文件)。 我认为它比传统的JDBC-ODBC
桥更简单并且具有更多的支持。
下载UCanAccess
驱动程序后,可以通过以下方法建立连接:
private Connection con ;
private Statement stmt;
public void connect ( String path ){
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
this.con = DriverManager.getConnection(path, "", "");
this.stmt = con.createStatement();
} catch (SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}
catch (ClassNotFoundException e) {
System.err.println("classnotfoundException: " + e.getMessage());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.