在线等 java.sql.SQLException: out of memory

时间:2020-12-24 22:51:44
我的javaweb项目  项目名为fakeji 在WebRoot下面有文件夹data  data中有文件data1.db

我连接数据库的语句为 public class DB {
public static Connection getConn() {
Connection conn = null;
try {
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite://fakeji/data/data1.db");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

为什么用myeclipse6.6、启动tomcat6.0  进入页面的时候提示错误为:

java.sql.SQLException: out of memory
at org.sqlite.DB.throwex(DB.java:252)
at org.sqlite.NestedDB.open(NestedDB.java:47)
at org.sqlite.Conn.<init>(Conn.java:36)
at org.sqlite.JDBC.connect(JDBC.java:38)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at test.db.DB.getConn(DB.java:12)
at test.dao.SqliteDAO.getDeptName(SqliteDAO.java:46)
at org.apache.jsp.data.Deptinfo_jsp._jspService(Deptinfo_jsp.java:82)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
最奇怪的是 我把连接改成 conn = DriverManager.getConnection("jdbc:sqlite://f:/data1.db"); 之后再把data1.db 拷贝到f盘中  就完全正常了  求各位 大侠解释!
头疼

5 个解决方案

#1


你查的数据太多 超出了服务器分配的内存空间了。。

#2


那为什么 我把db 文件放到 电脑F盘之后再连接  就正常啊   如果是像你说的那样应该怎么决解 因为项目要布置到服务器上面    不能放在我的F盘来使用啊 

#3


加大一下myeclipse的内存,还有tomcat内存,应该是更改一个文件,里面有4个参数,上网查一下,我忘记了,先试试能行通么;不过本质还是你的文件太大了

#4


Preferences — Server - Tomcat - tomcat6.0 - JRE - 右边一个大点的输入框Default VM Arguments中设置-Xms256M -Xmx512M 前面一个参数是最小分配的内存,后面是最大

#5


可能WebRoot下面有文件夹data data中有文件data1.db 这个时候,把db文件当resource读了。
全部读到内存来了,而指定磁盘地址就直接访问,而不读到内存了。

#1


你查的数据太多 超出了服务器分配的内存空间了。。

#2


那为什么 我把db 文件放到 电脑F盘之后再连接  就正常啊   如果是像你说的那样应该怎么决解 因为项目要布置到服务器上面    不能放在我的F盘来使用啊 

#3


加大一下myeclipse的内存,还有tomcat内存,应该是更改一个文件,里面有4个参数,上网查一下,我忘记了,先试试能行通么;不过本质还是你的文件太大了

#4


Preferences — Server - Tomcat - tomcat6.0 - JRE - 右边一个大点的输入框Default VM Arguments中设置-Xms256M -Xmx512M 前面一个参数是最小分配的内存,后面是最大

#5


可能WebRoot下面有文件夹data data中有文件data1.db 这个时候,把db文件当resource读了。
全部读到内存来了,而指定磁盘地址就直接访问,而不读到内存了。