如何使我的布尔值返回true?因为它不断返回假

时间:2019-05-30 09:20:15

标签: java boolean

我正在使用三层体系结构。在servlet中,在进入方法之前,我必须检查DAO层中的布尔值是true还是false。如果为false,则转到第一种方法;如果为true,则转到第二种方法。

我不知道出了什么问题,但它不断返回错误的消息。因此,即使我想要另一种方法,我也只能使用一种方法。下面是我的DAO层:

public static RPHS getRph(RPHS rph)  {
        rph_id = rph.getRph_id();

        String searchQuery = "select * from rphs where rph_id='" + rph_id + "'";

        try {
            currentCon = ConnectionManager.getConnection();
            stmt = currentCon.createStatement();
            rs = stmt.executeQuery(searchQuery);
            boolean more = rs.next();

            // if rph exists set the isValid variable to true
            if (more) {
                int rph_id = rs.getInt("rph_id");
                rph.setRph_id(rph_id);
                rph.setValid(true);
            }

            else if (!more) {
                rph.setValid(false);
            }

        }
}

如何使它返回值true?我的查询有问题吗?

1 个答案:

答案 0 :(得分:0)

您应该使用PreparedStatement而不是Statement,还应使用动态查询,例如。

String searchQuery = "select * from rphs where rph_id=?";

并将值传递给?标记。

Ex. stmt.setInt(1,101);

在ResultSet中使用结果后-

if (rs.next())
{
   int rph_id = rs.getInt("rph_id");
   rph.setRph_id(rph_id);
   rph.setValid(true);
}else {
        rph.setValid(false);
}