2 baidu 26873067 baidu_26873067 于 2016.04.26 17:17 提问

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)

这个问题该如何解决呢?

4个回答

baidu_26873067
baidu_26873067   2016.04.26 17:24

求解答啊!!!!大神在哪。。。

CSDNXIAOS
CSDNXIAOS   2016.04.26 17:30

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数据库
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

laotansuocai
laotansuocai   2016.04.26 17:47

**Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url= "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=access\dbaccess.mdb";
String uname = "";
String password = "";
Connection conn = DriverManager.getConnection(url, uname, password); *

这种直接连数据库的方式现在用的表较少了,看看你的用户名和密码

baidu_26873067
baidu_26873067   2016.04.26 17:57

不需要用户名和密码,我新建一个Java项目测试的时候,是可以直接连接上并返回数据的!(代码基本上和上面的一样)
然后把代码放到持久层就变成这样了!!
感觉狗咬刺猬,无处下牙呀!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!