2013-07-19 173 views
0

您好我有一個代碼,查詢信息從數據庫中,一旦它獲取信息的值存儲在價值bean(許多行信息可以從MySQL中檢索)。我應該創造一些東西一樣存儲信息價值bean

   movie movies[i] = new movie(); 
       movies[i].setMovieID(rs.getInt("Movie_ID")); 
       movies[i].setMovieTitle(rs.getString("Movie_Title")); 
       movies[i].setReleaseDate(rs.getDate("Release_Date")); 
       movies[i].setImage(rs.getString("Image")); 
       movies[i].setDescription(rs.getString("Description")); 

       movies.add(movies[i]); 

-instead OF-

public class MovieDB { 
    public ArrayList movies (String query){ 
     ArrayList movies= new ArrayList(); 

     try { 
      // step 1 : load JDBC Driver 
      Class.forName("com.mysql.jdbc.Driver"); 

      //step2 : define Connection URL 
      String connURL = "jdbc:mysql://localhost:3306/sp_movie?user=root&password=deepak1990"; 

      //step3 establish connection url 
      Connection conn = DriverManager.getConnection(connURL); 

      String sql="{call "+query+"}"; 
      CallableStatement cs=conn.prepareCall(sql); 

      ResultSet rs=cs.executeQuery(); 

// 1) This part 

      while(rs.next()){ 
       movie movies1 = new movie(); 
       movies1.setMovieID(rs.getInt("Movie_ID")); 
       movies1.setMovieTitle(rs.getString("Movie_Title")); 
       movies1.setReleaseDate(rs.getDate("Release_Date")); 
       movies1.setImage(rs.getString("Image")); 
       movies1.setDescription(rs.getString("Description")); 

       movies.add(movies1); 
      } 
      } catch (Exception e){ 
      } finally { 
       try { 

       } catch (Exception e) {} 
      } 
      return movies; 
     } 
} 
+2

你的第一選擇不會編譯'電影電影[i] =新電影();' – fmodos

回答

0

我認爲這是一個更好的,因爲沒有必要創建電影的數組。您可以直接獲取bean並將其添加到List。您也可以設置此列表以請求在JSP頁面上訪問。

while(rs.next()) 
{ 
        movie movies1 = new movie(); 
        movies1.setMovieID(rs.getInt("Movie_ID")); 
        movies1.setMovieTitle(rs.getString("Movie_Title")); 
        movies1.setReleaseDate(rs.getDate("Release_Date")); 
        movies1.setImage(rs.getString("Image")); 
        movies1.setDescription(rs.getString("Description")); 

        movies.add(movies1); 
} 
0

你的第二種形式(ArrayList)更好。如果你會在最後一行返回數組(不是ArrayList),你可以在第一個表格中使用return movies.toArray(new Movie[0]);
你有一些問題。

  • 在第一個你最懂得你的數組最大的是(數組的大小)。
  • 在您使用的最後一行movies.add(movies[i]);,但movies是一個數組。你不能在它上面使用這個方法。編譯器無法編譯它。
  • 作爲@fmodos說你的第一行有問題,編譯器不能編譯它。