我正在使用SQLite JDBC驱动程序访问数据库,由于某种原因,如果数据库中没有行,应用程序会终止,但很少解释它为什么会发生。
如果数据库不是空的,那就完全正常了;
这是终止发生的地方:
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行关闭,我发现这与数据库是否已填充无关。
有人知道如何解决这个问题吗?我发布了日志转储信息here。
修改
连接字符串 -
“jdbc:sqlite:D:\ Documents \ Uni \ Semester 2 \ Languages,Platforms and Tools \ Assignment \ Java \ SQLiteAssignment \ mydatabasefile.db”
答案 0 :(得分:0)
在查看供应商网站后,似乎已经在以后的版本中解决了这个问题。无论如何我最终改变了驱动程序,但我认为这对人们有用。