我目前正在学习一些基本的java SQL编码,为我的SQL项目制作一个基本的终端UI。我一直在使用PostgreSQL
我使用PreparedStatement
来确保自己不受SQL注入的影响,与其说抱歉,不如说安全PreparedStatement
似乎总是出于某种原因发出警告,我认为这是异常的一个子类(应该会被异常捕获)。
在我的SQL触发器和函数中,我创建并测试了应该触发异常的情况,它们都得到了正确的catch block并正常工作。
我想使用@superswarnings
让编译器知道我想抑制我的警告,但我可能想在catch块中捕捉一些警告,所以我可能在寻找不同的解决方案。
问题是:
preparedStmt之后,可以做些什么来获得我的打印。try块中的executeQuery
@SuppressWarnings
通常被认为是良好的编码实践吗
preparedStatement的理解不正确。executeQuery()
总是发出警告,在SQL语言中,什么是警告
我的代码:
void registerStudent(Connection conn, String toBeInserted, String insertedTo)
throws SQLException{
ResultSet res;
String query = "INSERT INTO Registrations VALUES (?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, toBeInserted);
ps.setString(2, insertedTo);
try {
ps.executeQuery();
}catch (SQLException e) {
SQLWarning warning = ps.getWarnings();
if (warning != null){
System.out.println("Yay, insert succeeded!
values: "+ toBeInserted +" were inserted into
"+insertedTo);
}else {
System.out.println("Nothing inserted, here goes the big exception SQL fired for ya'll: "
+ e.getMessage());
}
}
}
非常感谢,我知道我真的不应该回复你的帖子,但这对我帮助很大。我想我对ps.executeQuery()和ps.executeUpdate()方法感到困惑。
executeQuery()生成了一个警告,因为没有返回任何内容,尽管它确实可以使用该方法执行对数据库的更新。
其他的技巧和窍门我也会忍受。
仍然存在一些缺陷。我还添加了一个自动递增主键的例子——插入主键后可以检索它。
缺陷:
所以:
/**
* @return the generated primary key, the Student ID.
*/
int registerStudent(Connection conn, String toBeInserted, String insertedTo)
throws SQLException {
String query = "INSERT INTO Registrations(ToBeInserted, InsertedInto) VALUES(?, ?)";
try (PreparedStatement ps = conn.prepareStatement(query),
Statement.RETURN_GENERATED_KEYS) {
ps.setString(1, toBeInserted);
ps.setString(2, insertedTo);
int updateCount = ps.executeUpdate();
if (updateCount == 1) {
try (ResultSet rs = ps.getGeneratedKeys()) {
if (rs.next()) {
int id = rs.getInt(1);
return id;
}
}
throw new SQLException("No primary key generated");
} else {
SQLWarning warning = ps.getWarnings();
Logger.getLogger(Xyz.class.getName()).info("Not added, values: "
+ toBeInserted + " were not inserted into "+ insertedTo + ": " + warning);
throw new SQLException("Not added");
}
}
}
本文档介绍 DM 中各主要告警信息的处理方法。 高可用告警 DM_worker_offline 存在离线的 DM-worker 超过一小时会触发该告警。在高可用架构下,该告警可能不会直接中断任务,但是会提升任务中断的风险。处理告警可以查看对应 DM-worker 节点的工作状态,检查是否连通,并通过日志排查错误。 DM_DDL_error 处理 shard DDL 时出现错误,此时需要参考 DM
问题内容: 每次我都会收到警告: 抑制它的最佳方法是什么?所有软件包都是最新的。 Conf: OSX带有Brew Python 2.7.10(默认,2015年7月13日,12:05:58),pandas == 0.17.0和matplotlib == 1.5.0 问题答案: 您可以禁止所有警告:
我最近开始尝试llvm的< code>clang-tidy工具。现在我正试图抑制来自第三方库代码的错误警告。为此,我想使用命令行选项
问题内容: 我的pip版本已关闭-每个pip命令都说: 而且我不喜欢这里给出的答案:如何摆脱从pip升级的警告?因为他们都希望与RH版本不同步。 因此,我尝试使用此VagrantFile安装干净的系统: 但是后来我得到了: 因此,似乎我使用了错误的命令进行安装。使用正确的命令是什么? 问题答案: 创建一个pip配置文件并设置为true 在许多linux上,pip配置文件的默认位置是。Windows
我得到这个错误- (节点:18420)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“name” (节点:18420)未处理的PromisejectionWarning:未处理的promise拒绝。此错误源于在没有catch块的情况下抛出异步函数的内部,或者拒绝使用未处理的promise。catch()。要在未处理的promise拒绝时终止节点进程,请
问题内容: 当我运行程序时,Pandas每次都会发出如下“未来警告”。 我得到了味精,但我只是想一次又一次地停止Pandas显示此类味精,是否可以设置任何buildin参数以使Pandas不会弹出“未来警告”? 问题答案: 在github上发现了这个…