Java mysql查询(“SELECT*FROM movies”仅返回1行
我正在做一个简单的电影租赁应用程序,DAO部分的这个方法应该返回一个电影对象数组,但只返回一部电影 我检查了数据库,连接正常,但只列出第一行,没有其他内容。数据库中当前有3个电影条目Java mysql查询(“SELECT*FROM movies”仅返回1行,java,mysql,Java,Mysql,我正在做一个简单的电影租赁应用程序,DAO部分的这个方法应该返回一个电影对象数组,但只返回一部电影 我检查了数据库,连接正常,但只列出第一行,没有其他内容。数据库中当前有3个电影条目 public ArrayList<Pelicula> obtainMovies () { ArrayList<Movie> p=new ArrayList<>(); Movie pelic=new Movie(); try{ conn=
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()){
此外,还需要向列表中添加多个实例,因此将pelic移动到循环体中
while(rs.next()){
Movie pelic=new Movie();
或者,您将只向列表中添加一个Movie实例,并在每次循环迭代中修改该单个实例
if(rs.next()){
您可能希望循环所有结果:
while(rs.next()){
非常非常感谢!这很有魅力。我还有很多东西要学。谢谢你的回复!第一个回复就成功了。