数据库为空时Java崩溃
我正在使用SQLite JDBC驱动程序访问数据库,出于某种原因,如果数据库中没有行,应用程序将终止,而对发生的原因几乎没有解释 如果数据库不是空的,它工作得很好 这是终止发生的地方:数据库为空时Java崩溃,java,database,sqlite,Java,Database,Sqlite,我正在使用SQLite JDBC驱动程序访问数据库,出于某种原因,如果数据库中没有行,应用程序将终止,而对发生的原因几乎没有解释 如果数据库不是空的,它工作得很好 这是终止发生的地方: public static CustomFillTable Select(String table, String[] column, Object operand) throws SQLException { Connection connection = null; P
public static CustomFillTable Select(String table, String[] column, Object operand) throws SQLException
{
Connection connection = null;
PreparedStatement ps = null;
try
{
StringBuilder query = new StringBuilder();
query.append("select ");
for(int i = 0; i < column.length; i++)
{
query.append(column[i]);
if(i < column.length -1)
{
query.append(",");
}
}
query.append(" from ");
query.append(table);
//Verify usage of where clause
if(operand != null)
{
query.append(" where ");
query.append(operand);
}
//Termination occurs here
connection = DriverManager.getConnection(_connectionString);
connection.setAutoCommit(false);
ps = connection.prepareStatement(query.toString());
ResultSet rs = ps.executeQuery();
connection.commit();
CustomFillTable model = new CustomFillTable(rs);
while(rs.next())
{
System.out.println("id = " + rs.getString("id"));
System.out.println("name = " + rs.getString("name"));
}
return model;
}
应用程序在DriverManager.getConnection行关闭,我发现这与是否填充数据库无关
有人知道如何解决这个问题吗?我已经发布了日志转储信息
编辑:
连接字符串-
jdbc:sqlite:D:\Documents\Uni\sterm 2\Languages,Platforms and Tools\Assignment\Java\SQLiteAssignment\mydatabasefile.db查看供应商网站后,似乎在以后的构建中已经解决了这个问题。不管怎样,我最终还是换了驱动程序,但我认为这可能对人们有用。你能发布你的连接字符串是什么吗?哎哟。这看起来可能是jdbc驱动程序中的一个bug。我确信它以前工作过,现在没事了=/是的,这看起来像是驱动程序中的一个bug。你以前在干什么?你是否升级了某个驱动程序?注意到我知道,我昨天尝试了另一个驱动程序,但决定不升级。我在几周前重新实现了一个备份,它也做了同样的事情,我真的不明白到底发生了什么。