数据库为空时Java崩溃

时间:2011-05-03 16:17:41

标签: java database sqlite

我正在使用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”

1 个答案:

答案 0 :(得分:0)

在查看供应商网站后,似乎已经在以后的版本中解决了这个问题。无论如何我最终改变了驱动程序,但我认为这对人们有用。