0

嗨,我有一个从数据库查询信息的代码,一旦它获得信息,这些值就会存储在值 bean 中(可以从 mysql 检索许多行信息)。我应该创造一些像

                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]);

-代替-

 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;
        }
}
4

2 回答 2

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);
}
于 2013-07-19T07:00:40.700 回答
0

你的第二种形式(ArrayList)更好。如果您将在最后一行返回为数组(而不是 ArrayList),您可以return movies.toArray(new Movie[0]);
在第一种形式中使用您有一些问题。

  • 首先,您最了解您的阵列如何最大,(阵列的大小)。
  • 在你使用的最后一行movies.add(movies[i]);但是movies是一个数组。你不能用这个方法就可以了。编译器无法编译它。
  • 正如@fmodos 所说,您的第一行有问题,编译器无法编译它。
于 2013-07-19T09:24:59.303 回答