将Java 8与Access连接时出错:未找到合适的驱动程序
我想用Access连接Java8,但出现了以下错误,我不知道如何修复它。我总是会遇到这样的错误: java.sql.SQLException:未找到适合jdbc的驱动程序:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb 我添加了4个库:将Java 8与Access连接时出错:未找到合适的驱动程序,java,database,ms-access-2007,ucanaccess,Java,Database,Ms Access 2007,Ucanaccess,我想用Access连接Java8,但出现了以下错误,我不知道如何修复它。我总是会遇到这样的错误: java.sql.SQLException:未找到适合jdbc的驱动程序:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb 我添加了4个库: hsqldb.jar jackcess-2.0.7.jar org.apache.commons.lang-2.6-source.jar org.apache.commons.lo
- hsqldb.jar
- jackcess-2.0.7.jar
- org.apache.commons.lang-2.6-source.jar
- org.apache.commons.loggin-1.1.1-source.jar
import java.sql.*;
public class DbConnection {
Connection con;
Statement st;
DbConnection(){
dbconnect();
}
//-----------------------
public void dbconnect(){
try
{
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb");
Statement stment = conn.createStatement();
}
catch(Exception err)
{
System.out.println(err);
}
}
//--------------------------
public static void main(String[]args){
DbConnection ob=new DbConnection();
}//end main
}
尝试添加“Class.forName():
基本问题是早期版本的Java/JDBC使用ODBC连接到MS Access…并且ODBC驱动程序已从Java 8中删除
可使用两种备选方案:
1) UCanAccess:
……或者
2) Jackcess(Jackcess 2.0:全新的松脆外观,同样美味的填充物!):
如果这不起作用:
3) 请指定您正在使用的IDE(Eclipse等-如果适用)
4) 确保您的jackcess-2.0.7.jar显式包含在类路径中(如何实现这一点取决于您的IDE)
5)考虑在名称
中使用没有空格的目录 我添加了4个库 您需要五(5)个库。您忘记添加“ucanaccess-x.y.z.jar”文件本身 有关详细说明,请参阅谢谢兄弟,但仍然不起作用,我使用eclipse添加了jackcess-2.0.7.jar和其他3个库,但没有解决我的问题您只需要一个库(jackcess-2.0.7.jar),并且您需要在运行/调试类路径(不仅仅是构建路径)中使用它“救命啊?是否从文件路径中删除空间?附加建议:在调用getConnection()之前,请尝试列出所有JDBC驱动程序-查看我们的朋友“ucanaccess”是否已注册。听起来这就是问题所在。看起来您没有添加ucanaccess.jar,它不在您的列表中。它位于ucanaccess发行版的根目录中,最后您需要五个JAR。
Class.forName()
绝对不是必需的。添加Class.forName()
肯定会使Eclipse IDE的“Export…>Runnable JAR file”函数发挥作用;没有它,我就找不到合适的驱动程序,有了它,我就可以访问数据库。
public void dbconnect(){
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://C:/Users/Ghazi/workspace/java w access/login.accdb");
Statement stment = conn.createStatement();
}
catch(Exception err) {
System.out.println(err);
}
}