使用DriverManager.getConnection时提示JDBC 连接SQLite3 报java.sql.SQLException: out of memory异常。
出现这个问题,我一直以为是内存不足,折腾了半天。
这个我用来取得应用程序当前工作目录的代码
/**
* 得到classPath绝对路径
*
* @param classPath
* 相对路径
* @return
*/
public static String getAbsoluteClassPath(String classPath) {
String path = null;
try {
File file = new File(Thread.currentThread().getContextClassLoader()
.getResource(classPath).getPath());
path = URLDecoder.decode(file.getAbsolutePath(), "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return path;
}
这是取得数据库访问连接对象的代码
conn = DriverManager.getConnection("jdbc:sqlite:" + url + "/sqlite/" + dbName,"","");
后来发现是因为访问的数据库的路径的问题造成的,真是折腾了一晚上。
把数据库复制到BIN目录的包的目录下面,同时修改代码如下,错误提示没有了。。。。。。
conn = DriverManager.getConnection("jdbc:sqlite:" + dbName, "", "");
(责任编辑:机器AI) |