任何人都可以帮助我将我的应用程序连接到Access

时间:2016-01-16 17:35:07

标签: java ms-access jdbc

这是连接代码

public class Connect {
    public ResultSet rs;
    Statement st;
    Connection con;
    PreparedStatement pStat;
    ResultSetMetaData rsm;

    public Connect() {
        // TODO Auto-generated constructor stub
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            File tempFile = new File("Project.mdb");
            con = DriverManager
                    .getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + tempFile.getAbsolutePath());
            st = con.createStatement(1004, 1008);
            System.out.println("CONNECT");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("Error Connection");
        }
    }

    public ResultSet executeQuery(String query) 
    {
        try {
            rs = st.executeQuery(query);
            rsm = rs.getMetaData();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.out.println("Error Connection RS");
        }
        return rs;
    }

这是错误

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)`enter code here`
    at java.sql.DriverManager.getConnection(Unknown Source)
    enter code here

1 个答案:

答案 0 :(得分:1)

  1. 尝试检查是否可以通过ODBC访问该数据库。
  2. 为{64}和32位系统在DSN中设置odbcad32
  3. 然后作为JDBC连接字符串使用:jdbc:odbc:[CreatedDSN]。如果无法连接到64位版本的odbcad32中的Access,请确保它在32位版本的odbcad32中工作,并确保使用32位版本的Java。
  4. 有关详细信息,请转到link