gpt4 book ai didi

java - 验证准备好的语句中的空字段

转载 作者:行者123 更新时间:2023-12-01 13:10:36 26 4
gpt4 key购买 nike

我有一个 GUI,它接受插入到查询中的字段。当字段为空时,当字段与指定类型不匹配时,java 会抛出格式异常。但是,我希望用户知道输入无效。有没有办法验证准备好的语句中插入的字段何时为空?

片段:

String query = "DELETE FROM racewinners WHERE racename = ? "
+ "AND raceyear = ? AND ridername = ? "
+ "AND distance = ? " + "AND winning_time = ?";

try {
statement = connection.prepareStatement(query);
statement.setString(1, race_name);
statement.setInt(2, race_year);
statement.setString(3, rider_name);
statement.setInt(4, distance);
statement.setObject(5, winning_time);

} catch(SQLException e) {
System.out.println(e1.getMessage());
}

最佳答案

要检查 null,从 Java 7 开始,您所要做的就是

Objects.requireNonNull(someVariable);

或使用overloaded method您可以在其中指定消息。如果传递的参数为null,该方法将引发异常。

对于任何其他自定义逻辑,您必须编写自己的 validator 。

类似的东西

public interface Validator<T> {
public void validate(T object, Errors errors);
}

public class RaceInfoValidator implements Validator<RaceInfo> {
public void validate(RaceInfo raceInfo, Error errors) {
if (raceInfo.getRaceName() == null) {
errors.addError("Must provide a race name.";
} else if (raceInfo.getRaceName().isEmpty()) {
errors.addError("The race name must not be empty.";
}
// etc.
}
}

...

String race_name = ...;
...
RaceInfo raceInfo = new RaceInfo(race_name, ...);
RaceInfoValidator validator = ...;
Errors errors = ...; // write some implementation
validator.validate(raceInfo, errors);
if (errors.hasErrors()) {
// show user the errors
}
<小时/>

或者,您可以将此验证放入数据库表架构中,但我不建议这样做。

关于java - 验证准备好的语句中的空字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22898662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com