我正在做一个简单的电影租赁应用程序,DAO
部分中的这个方法应该返回一个“电影”对象数组,但只返回 1 部电影。
我检查了数据库,连接正常,但只列出第一行,没有其他内容。目前数据库中有 3 部电影条目。
public ArrayList<Pelicula> obtainMovies () {
ArrayList<Movie> p=new ArrayList<>();
Movie pelic=new Movie();
try{
conn=connect();
String sql="SELECT * FROM movies";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
pelic.setTitle(rs.getString("title"));
pelic.setGenre(rs.getString("genre"));
pelic.setRating(rs.getInt("rating"));
pelic.setRented(rs.getBoolean("rented"));
p.add(pelic);
}
else {return null;}
return p;
}
最佳答案
假设您的表格有多于一行,这
if(rs.next()){
应该使用像这样的循环
while(rs.next()){
此外,您还需要向 List
添加多个实例,因此将 pelic
移至循环体
while(rs.next()){
Movie pelic=new Movie();
或者,您只需将 Movie
的一个实例添加到 List
中(并在每次循环迭代时修改该单个实例)。
关于Java mysql 查询 ("SELECT * FROM movies"仅返回 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26835156/