您好我有一个代码从数据库查询信息,一旦获取信息,值就存储在一个值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;
}
}
答案 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
是一个数组。你不能在它上面使用这种方法。编译器无法编译它。