0

我的 java 应用程序从 Xml 文件中获取用户列表,并且每个用户都必须进行一些 I/O 操作。这些操作是:

  1. 使用 JDBC 驱动程序访问 5 MB 数据库
  2. 将一些文件移动到基​​本文件夹以处理它们
  3. 删除临时文件

当 xml 仅包含 50 个用户时,它可以完美运行,但如果 xml 文件中的用户数量增加,应用程序将失败。

使用此代码访问数据库时

Class.forName("org.sqlite.JDBC");
Connection conn = DriverManager.getConnection("jdbc:sqlite:DbName.db");

我有

 java.lang.NullPointerException
    at org.sqlite.NestedDB$CausedSQLException.fillInStackTrace(NestedDB.java:442)
    at java.lang.Throwable.<init>(Throwable.java:250)
    at java.lang.Exception.<init>(Unknown Source)
    at java.sql.SQLException.<init>(Unknown Source)
    at org.sqlite.NestedDB$CausedSQLException.<init>(NestedDB.java:435)
    at org.sqlite.NestedDB._open(NestedDB.java:63)
    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)

现在我有 300 个用户,我通过将 xml 文件分成 5 个部分解决了这个问题,但我想了解为什么会发生这种情况。有人能帮我吗?

4

2 回答 2

2

该解决方案听起来确实非常可扩展。我印象深刻的是它可以处理更多的用户。

我不会使用 XML 作为数据库,我只会使用一个副本,这样拥有更多用户不会对资源使用产生任何影响。

于 2013-09-17T12:08:30.777 回答
0

可能是因为内存不足的问题。使用 -Xmx512m 选项尝试 java

于 2013-09-17T12:10:13.337 回答