2011-05-03 72 views
1

我正在使用SQLite JDBC驅動程序來訪問數據庫,由於某種原因,如果數據庫中沒有行,並且爲什麼會發生這種情況,應用程序會終止。數據庫爲空時Java崩潰

如果數據庫不是空的,它可以很好地工作;

這是終止發生:

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:\文件\統一\學期2種\語言,平臺和工具\轉讓\的Java \ SQLiteAssignment \ mydatabasefile.db 「

+0

你能發佈你的_connectionString是什麼嗎? – Casey 2011-05-03 16:21:40

+1

ouch。看起來它可能是jdbc驅動程序中的一個錯誤。 – Casey 2011-05-03 16:23:00

+0

我確信它的工作之前,現在沒有=/ – 2011-05-03 16:25:53

回答

0

看過供應商的網站後,似乎它已經在以後的版本中解決了。無論如何,我最終改變了司機,但我認爲這可能對某些人有用。