方法如下:
public List> queryProject(String path) throws SQLException {
//加载驱动
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
}
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + path;
Connection conn = DriverManager.getConnection(dbUrl);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select InstanceID, name from Project");
List> results = new ArrayList>();
while(rs.next()){
Map rst = new HashMap();
rst.put("InstanceID", rs.getString(1));
rst.put("name", rs.getString(2));
results.add(rst);
//System.out.println(rs.getString(1)+"-->"+rs.getString(2));
}
rs.close();
stmt.close();
conn.close();
return results;
}
断点调试,发现在执行Connection conn = DriverManager.getConnection(dbUrl);代码时,报如下错误:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 超出系统资源。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3073)
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:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
这个问题该如何解决呢?