MS Access数据库的Java连接

MS Access数据库的Java连接,java,sql,database,ms-access,jdbc-odbc,Java,Sql,Database,Ms Access,Jdbc Odbc,不知道是否有人能帮我,我正在尝试连接到MS Access数据库。我在其他项目上也做过,使用了完全相同的代码。有人能看出我做错了什么吗 try { System.out.println("Attempting Database Connection"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String sourceURL = "jdbc:odbc:Driver={Microsoft Acce

不知道是否有人能帮我,我正在尝试连接到MS Access数据库。我在其他项目上也做过,使用了完全相同的代码。有人能看出我做错了什么吗

try {
        System.out.println("Attempting Database Connection");
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String sourceURL = "jdbc:odbc:Driver={Microsoft Access Driver(*.mdb)};DBQ=MotivationDatabase.mdb;";
        connection = DriverManager.getConnection(sourceURL, "", "");
        stmt = connection.createStatement();
        System.out.println("Connection made");
    } catch (Exception e) {
        System.out.println("Database connection attempt failed");
        System.out.println(e);
    }
我不断得到错误:

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'.
但是我的数据库和我的项目在同一个文件夹中,就像我以前做的一样。我不知道为什么会出现这个错误。帮助?

  • 控制面板
    ->
    管理工具
    ->
    ODBC数据源
    ->
    添加
    ->
    Microsoft Access驱动程序(*mdb,*accdb)

  • 指定与
    数据源名称
    对应的
    动机数据库.mdb
    的正确路径,并保存设置

请参阅

代码: 输出:

p.S:请学习以的身份使用。请参阅

编辑: 您还可以使用JDBC和连接到MSAccess数据库。在项目构建路径中需要以下JAR

  • commons-lang-2.6.jar
  • commons-logging-1.1.1.jar
  • hsqldb.jar
  • jackcess-2.1.0.jar
  • ucanaccess-2.0.9.5.jar
  • 代码:
    使用JDK8可以很好地工作。您可以从下载整个源代码,当java 8发布时,Sun JDBC ODBC将无法与MS access一起工作:我建议您使用apache poi项目。它很简单,效果很好

    是的,没错,正确的项目是Jaccess:

    import com.healthmarketscience.jackcess.DatabaseBuilder;
    import com.healthmarketscience.jackcess.Row;
    import com.healthmarketscience.jackcess.Table;
    try{Table table = DatabaseBuilder.open(new File("filename")).getTable("tablename");
        righe.add(0);
        for(Row row : table) {
            String articolo=row.get("ColName").toString();
    

    尝试使用此类名称和连接URL。将以下jar文件添加到项目中:

    commons-lang.jar,commons logging.jar,hsqldb.jar,jackcess.jar,ucanaccess.jar

    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
    //change the path with your own accdb file
    String URL = "jdbc:ucanaccess://D:\\projects\\test.accdb";
    Connection con = DriverManager.getConnection(URL);
    

    我已经这样做了,但仍然是同一个错误,如果我诚实的话,我不知道我错在哪里了。你需要在JDBC URL中指定.mdb文件的完整路径。@a_horse_,with_no_name:他没有使用JDBC。@Sandeep:当然是。使用的是JDBC/ODBC桥,但仍然是JDBC
    import com.healthmarketscience.jackcess.DatabaseBuilder;
    import com.healthmarketscience.jackcess.Row;
    import com.healthmarketscience.jackcess.Table;
    try{Table table = DatabaseBuilder.open(new File("filename")).getTable("tablename");
        righe.add(0);
        for(Row row : table) {
            String articolo=row.get("ColName").toString();
    
    Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
    //change the path with your own accdb file
    String URL = "jdbc:ucanaccess://D:\\projects\\test.accdb";
    Connection con = DriverManager.getConnection(URL);