从Java中的连接SQL字符串移至PreparedStatement

用户名

假设我有一个表单,并且基于用户在表单中填写的字段,我使用Java字符串和诸如“ field1 ='A'和field2 ='B'之类的子句的连接在Java代码中创建SQL语句。 field3 ='C'“,等等。如果未填写该字段,则跳过此部分,而不将其添加到我的Java SQL字符串中,从而接受数据库表中该字段中的任何值。有人告诉我,串联SQL字符串是一个坏习惯,我宁愿使用PreparedStatement而不是直接执行executeQuery。在这种情况下,如何为表单中当前字段的每个组合创建单独的PreparedStatement呢?

达伍德·伊本·卡里姆

首先,在远离将字符串与字段值连接在一起方面做得很好。您只是摆脱了讨厌的SQL注入攻击。

您希望使用与以前相同的逻辑-相同的if语句,并且仅向存在该字段的SQL添加一个子句。在准备使用它们之前,您可能希望StringBuilder构建一个SQL并ArrayList<String>存储一个参数值。您可能最终会遇到很多看起来像这样的块。

if (! field1Text.equals("")) {
    sql.append(" and field1 = ?");
    params.add(field1Text);
}

然后,最后,在创建完之后PreparedStatement,您将遍历参数列表,并调用setString每个参数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Spark Java 拆分连接的字符串

来自分类Dev

处理日期并连接dplyr(SQL)中的字符串

来自分类Dev

Web服务C#中的SQL连接字符串

来自分类Dev

Julia ODBC中SQL Server的连接字符串

来自分类Dev

Powershell中的SQL连接字符串错误

来自分类Dev

用SQL Server连接字符串中的值

来自分类Dev

Big Query SQL连接或链接管道字符串或字符串数组中的值

来自分类Dev

Java中的字符串初始化和连接

来自分类Dev

Java中的字符串初始化和连接

来自分类Dev

MySQL用Java中的逗号连接字符串

来自分类Dev

如何在Java中连接字符串

来自分类Dev

jsp Java中的连接字符串有问题吗?

来自分类Dev

Java连接字符串与静态字符串

来自分类Dev

在sqlite求和字符串中连接字符串

来自分类Dev

将连接字符串存储在字符串中

来自分类Dev

在sqlite求和字符串中连接字符串

来自分类Dev

加密SQL连接字符串

来自分类Dev

Web服务-SQL连接字符串

来自分类Dev

SQL Server连接字符串的麻烦

来自分类Dev

SQL连接查询字符串

来自分类Dev

加密SQL连接字符串

来自分类Dev

UWP SQL Server 连接字符串

来自分类Dev

IIS 上的 SQL 连接字符串

来自分类Dev

使用 args 连接 SQL 字符串

来自分类Dev

C#SQL连接类连接中的字符串问题

来自分类Dev

VBA连接字符串中的错误

来自分类Dev

在C中连接字符串

来自分类Dev

连接LINQ查询中的字符串

来自分类Dev

在列中连接特定的字符串