java - 查询不从数据库返回任何内容

标签 java postgresql

我正在尝试使用值 FK_adId 从我的数据库中获取汽车。我已尝试使用 FK_adId 值 52 调用该方法,并且我已检查我的数据库中是否存在具有 FK_adId 值 52 的汽车。为什么不退还给我?

public Car getCar(int adId) {
    Car car = null;
    try {
        Class.forName("org.postgresql.Driver");
        if (con != null) {
            ps = con.prepareStatement("SELECT * FROM \"car\" WHERE \"FK_adId\" = ?;");
            ps.setInt(1, adId);
            rs = ps.executeQuery();
            rs.next();
            if (rs.next()) {
                car = new Car(rs.getString("brand"), rs.getString("vin"), rs.getString("condition"), rs.getInt("distanceTraveled"), rs.getInt("age"), rs.getInt("price"), rs.getInt("FK_adId"));
            }
        }
    } catch (Exception ex) {
        System.out.println(ex);
    }
    return car;
}

最佳答案

        rs.next();
   if (rs.next()) {

调用 .next() 一次,而不是两次。您前进到结果的第一行,然后前进到第二行。由于查询未返回两行,因此您不会获得第二行。您跳过了所需的行。

关于java - 查询不从数据库返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34268484/

相关文章:

postgresql - 对两个单独的列输出使用 LIKE

java - 当目录和文件存在时“尝试获取空数组的长度” - 全新安装

java - 我应该使用哪个库从 Linux/Python 编写 XLS?

java - Android编程,后台任务(Context)中的后台任务不能应用到()

java - 设置合成的背景图像,使内部合成不显示背景

postgresql - 无法安装 PostgreSQL 8.3,无法运行 initdb :1?

sql - 如果表为空如何返回 0,否则返回 1

java - Python 到 Java 代码转换

Join 子句中的 SQL Case 表达式

sql - postgresql - 多列的前 5 个值,以及值的总和