java - 如何让我的布尔值返回真值?因为它一直返回 false
问题描述
我正在使用三层架构。在 servlet 中,在使用方法之前,我必须检查我的 DAO 层中的布尔值是真还是假。如果为假,则转到第一种方法,如果为真,则转到第二种方法。
我不知道出了什么问题,但它一直返回错误的。所以我坚持使用一种方法,即使我想要另一种方法。下面是我的 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?我的查询有问题吗?
解决方案
你应该使用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);
}
推荐阅读
- javascript - React/React Native:子组件状态的变化会重新渲染整个组件
- javascript - 如何在发布请求中上传带有 csrf 令牌的文件
- c# - app.ApplicationServices.GetService() 有什么作用?
- c# - Discord.NET 对象引用未设置为对象的实例
- entity-framework-6 - 在 EF6 中动态创建 DbConfiguration
- node.js - 是否可以仅获取 HTTP 标头而不使用 NodeJS 中的 Axios 下载内容正文?
- verilog - Verilog:if语句和case语句之间的区别
- java - JavaFX Canvas fillPolygon 方法不会创建平滑表面(网格线可见)
- amazon-eks - 创建 EKS 集群但出现密钥对错误
- sql-server - 如何将 SQCLR 程序中的日志写入 Elastic?