Java mysql 查询 ("SELECT * FROM movies"仅返回 1 行

标签 java mysql

我正在做一个简单的电影租赁应用程序,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/

相关文章:

php - WordPress数据库错误: You have an error in your SQL syntax

OnClickListener 中的 Java 语法困惑

java - 如何用java导出pdf格式的列表

java - 哪些版本的相关技术适用于J2EE 1.4、5和6?

java - 需要一个逻辑来将数据存储到原语中并在没有 SQLite 的情况下将它们关联起来

php - 如何使用 Laravel 将 mysql json 字段转换为 javascript 对象?

mysql - SQL查询失败,42000 1064

java - 解释使用 JSch 的 SFTP 文件传输中使用的路径

mysql - 如何编写代码以便在我们销售产品后更新库存

mysql - 复杂的(我的)SQL 左连接