java - executeUpdate (Java) 中的动态变量
问题描述
我有以下connection
,statement
和executeUpdate
Connection con = DBConnPool.getInstance().getConnection();
Statement stmt = con.createStatement();
//String str1 = "update node set compareflag=0, personalid=NULL where ipaddress='192.168.150.213'";
String str1 = "update node set compareflag=0, personalid=NULL where ipaddress='var3.getIpAddress()'";
stmt.executeUpdate(str1);
注释掉的String
行完美运行,var3.getIpAddress()
即使该变量确实包含我在代码的其他区域中使用的正确数据,另一行也会忽略返回的值。
我是否必须先创建一个单独的变量,然后将其等同于var3.getIpAddress()
?
任何想法表示赞赏,它可能在错误的地方“或”不够。
解决方案
您应该使用PreparedStatement设置参数以确保安全。
PreparedStatement pstmt = con.prepareStatement("update node set compareflag=0, personalid=NULL where ipaddress=?");
pstmt.setString(1,var3.getIpAddress());
pstmt.executeUpdate();
推荐阅读
- python - Discord Bot 框架在启动时崩溃(Python)
- amazon-web-services - 如果订阅了不同帐户的 SNS,如何检查 SQS 过滤策略?
- tensorflow - 使用keras在损失函数中批量逐元素产品
- python - 如何将 Django 服务器作为 Windows 服务运行
- html - 赛普拉斯条件语句未按预期工作
- python-3.x - 我在这个程序中得到一个错误的输出
- regex - 在 postgresql 中清理字符串
- embedded - ESP-IDF || 核心转储
- python - 将 random.random 均匀转换为指数分布不会产生正确的结果
- mongoose - Mongoose `$project` 如何避免重复文件