问题描述
- java 连接 access数据库问题
-
方法如下:
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)这个问题该如何解决呢?
解决方案
求解答啊!!!!大神在哪。。。
解决方案二:
package org;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class TestAcess {
/**
* @param args
*/
p......
答案就在这里:java连接access数据库
解决方案三:
**Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url= "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=accessdbaccess.mdb";
String uname = "";
String password = "";
Connection conn = DriverManager.getConnection(url, uname, password); *
这种直接连数据库的方式现在用的表较少了,看看你的用户名和密码
解决方案四:
不需要用户名和密码,我新建一个Java项目测试的时候,是可以直接连接上并返回数据的!(代码基本上和上面的一样)
然后把代码放到持久层就变成这样了!!
感觉狗咬刺猬,无处下牙呀!
时间: 2024-08-03 10:18:37