Java 访问数据库连接

标签 java database-connection jdbc-odbc

我尝试创建连接到数据库的项目(MS Access 2010) 我用这个教程on CodeProject .

import java.sql.*;

public class DbAccess
{
    public static void main(String[] args)
    {
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            String database = 
              "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;";
            Connection conn = DriverManager.getConnection(database, "", "");
            Statement s = conn.createStatement();

            // create a table
            String tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0));
            String createTable = "CREATE TABLE " + tableName + 
                                 " (id Integer, name Text(32))";
            s.execute(createTable); 

            // enter value into table
            for(int i=0; i<25; i++)
            {
              String addRow = "INSERT INTO " + tableName + " VALUES ( " + 
                     String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value " + 
                     String.valueOf(Math.random()) + "')";
              s.execute(addRow);
            }

            // Fetch table
            String selTable = "SELECT * FROM " + tableName;
            s.execute(selTable);
            ResultSet rs = s.getResultSet();
            while((rs!=null) && (rs.next()))
            {
                System.out.println(rs.getString(1) + " : " + rs.getString(2));
            }

            // drop the table
            String dropTable = "DROP TABLE " + tableName;
            s.execute(dropTable);

            // close and cleanup
            s.close();
            conn.close();
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

但是我得到了奇怪的异常:java.sql.SQLException: [Microsoft][?????????? ??????? ODBC] ???????? ?????? ?? ?????? ? ?? ?????? ????????, ???????????? ?? ??????????

java.sql.SQLException: [Microsoft][????????? ????????? ODBC] ???????? ?????? ?? ?????? ? ?? ?????? ???????, ???????????? ?? ????????? at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956) at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072) at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323) at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) at java.sql.DriverManager.getConnection(DriverManager.java:579) at java.sql.DriverManager.getConnection(DriverManager.java:221) at dbaccess.DbAccess.main(DbAccess.java:28)

我用谷歌搜索并在 Stack 上找到其他问题,如下所示:Stack Post

所以我添加了所有可以帮助我连接 *.mdb 文件的 ODBC 驱动程序。但没有什么好 hepend.(

它是什么以及如何连接到 Access DB?

最佳答案

您的代码没有根本性的错误,因为我将它粘贴到 Eclipse 中并且运行良好。我所做的唯一更改是指定数据库文件的路径,即,而不是使用

DBQ=myDB.mdb

我用过

DBQ=C:\\__tmp\\myDB.mdb

我也在 32 位 JVM 下运行它(在 32 位计算机上)。所以,我的建议是

  1. 尝试像我一样指定 .mdb 文件的完整路径。

  2. 如果仍然出现错误,请检查您的 Java 环境以查看您的应用程序是否在 64 位 JVM 中运行。如果是,则 Driver={Microsoft Access Driver (*.mdb)} 将不起作用:没有 64 位版本的旧 Jet ODBC 驱动程序。在这种情况下,您有两种选择:

    我。将您的应用程序配置为在 32 位 JVM 中运行,或者

    二。从 here 下载并安装 64 位版本的 Access 数据库引擎,然后使用 Driver={Microsoft Access Driver (*.mdb, *.accdb)}

关于Java 访问数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19623100/

相关文章:

java - 使用泛型对整数数组进行排序 (Java)

java - HttpURLConnection总是返回错误500

visual-studio-2010 - 尝试连接到 Visual Studio 2010 中的数据库时出现意外错误

visual-studio-2010 - 无法连接到 Sql Server 数据库 : non-system databases are not shown

java - 如何从java中的结果集列名获取值?

java - 读取ByteBuffer中不同类型的文件

java - 方法中的局部变量类型错误

java - Android 应用程序与 Derby 中的远程数据库的连接

java - "Too few parameters"错误,即使我输入兼容的数据类型

java - 从java如何调用存储过程传递oracle游标作为参数