我正在做一个简单的电影租赁应用程序,这个DAO
部分的方法应该返回一个“电影”对象数组,但只返回一个电影。
我检查了数据库,连接很好,但是只列出了第一行,没有别的。数据库中当前有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 - Java mysql查询(“SELECT * FROM电影”仅返回1行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26835156/