首页 > 解决方案 > 仅从 jdbc 中的表中获取第一行

问题描述

我只从 JDBC 调用中获取表中的第一行。

下面是我的代码

import java.util.*;
import java.sql.*;

public class TrainManagementSystem {
    
    public ArrayList <Train> viewTrain (String coachType, String source, String destination){
        
        Connection myCon = null;
        PreparedStatement myStat = null;
        ResultSet myRes = null;
        ArrayList<Train> result = new ArrayList<>();
        try{
            myCon = DB.getConnection();
            myStat = myCon.prepareStatement("select * from train where source = ? and destination = ? and ? > 0");
            myStat.setString(1, source);
            myStat.setString(2, destination);
            myStat.setString(3, coachType);
            
            myRes = myStat.executeQuery();
            
            while(myRes.next()){
                int train_number = myRes.getInt("train_number");
                String train_name = myRes.getString("train_name");
                String source1 = myRes.getString("source");
                String destination1 = myRes.getString("destination");
                int ac1 = myRes.getInt("ac1");
                int ac2 = myRes.getInt("ac2");
                int ac3 = myRes.getInt("ac3");
                int sleeper = myRes.getInt("sleeper");
                int seater = myRes.getInt("seater");
                System.out.println(myRes.getString("train_name"));
                Train train = new Train(train_number, train_name, source1, destination1, ac1, ac2, ac3, sleeper, seater);
                result.add(train);
                return result;
            }
        }catch(Exception e){
            System.out.println(e);
        }
        return result;
    }

}

我只得到 JDBC 结果集中的第一行。该查询未检索第二行。我已将我的条目附在表格中。当输入为

输入表

为什么不进入下一行?当我尝试删除 Coachtype 并仅搜索 Howrah 和 Dehradun 之间的火车时,它给了我结果 Dehradun Mail,而结果也应该添加 Doon Express。

这是我的表格记录

标签: javajdbc

解决方案


因为你return result;的while循环里面有一个。将它向下移动到循环之外


推荐阅读