java当jdbc与sqlite3数据库连接时,我应该如何避免“内存不足”的错误?
当jdbc与sqlite3数据库连接时,我必须做些什么来避免“内存不足”的错误
java.sql.SQLException: out of memory
at org.sqlite.DB.throwex(DB.java:288)
at org.sqlite.NestedDB._open(NestedDB.java:73)
at org.sqlite.DB.open(DB.java:77)
at org.sqlite.Conn.<init>(Conn.java:88)
at org.sqlite.JDBC.connect(JDBC.java:64)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at action.Actions.<init>(Actions.java:18)
at controler.ClientControler.<init>(ClientControler.java:14)
at main.Main.main(Main.java:20)
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:clients.db");
# 1 楼答案
就像前面提到的DarkCthulhu一样,在数据库文件的路径中不能有任何空格。即使您声明了它的相对路径(比如在您的案例中),这也适用。我打赌项目的路径包含一个或多个空格
您可以声明它的完整路径和转义的空格,或者将项目位置更改为不带空格的路径
# 2 楼答案
我在试图通过Eclipse的“数据源浏览器”连接时遇到了这个问题
在Mac电脑上,当我在浏览提示中双击文件名时,数据库位置填充了文件夹,数据库中填充了文件名。当我手动将数据库文件添加到“数据库位置”字段时,我就可以连接了
# 3 楼答案
是的,如果找不到文件,它会生成这样奇怪的异常“内存不足”。 在EclipseIDE中,将数据库文件名放入字段:database location,而不是单独指定数据库名称和路径
示例:数据库位置:c:\temp\test。分贝
# 4 楼答案
我也有同样的问题,我想我们遇到了一些错误。这个异常绝对不是由“文件不存在”引起的:我用适当的测试用例仔细检查了它
数据库本身是使用sqlite3官方命令行工具创建的,因此也没有损坏的数据库。我可以放心地告诉你,图书馆不知怎么坏了
请告诉我你的操作系统和JVM版本是什么,这样我就可以看看它是否与我的相匹配,然后我们可以准备一份错误报告
# 5 楼答案
如果数据库路径包含JDBC找不到的任何空间。 例如
C:/Program Files
是错误的。必须是C:/Program_Files
。 我也有同样的问题,现在它可以工作了# 6 楼答案
This表示找不到
clients.db
文件。尝试更恰当地定位该文件。向下滚动到标题为“如何指定数据库文件”的部分我下载了SQLite JAR,把它放在我的类路径中,找到了一个教程here,它在不到五分钟的时间内就完美地工作了。这是一个考验。我的项目根目录中的db,如预期的那样
我已经按照我的方式重写了那个教程<它能用<不要说它什么都没带来