我正在使用三层体系结构。在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?我的查询有问题吗?
答案 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);
}