在value bean中存储信息

时间:2013-07-19 06:46:15

标签: jsp servlets

您好我有一个代码从数据库查询信息,一旦获取信息,值就存储在一个值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;
        }
}

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

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

  • 在第一个你最知道你的阵列最大的是什么(数组的大小)。
  • 在您使用movies.add(movies[i]);的最后一行,但movies是一个数组。你不能在它上面使用这种方法。编译器无法编译它。
  • as @fmodos说你的第一行有问题,编译器无法编译它。