gpt4 book ai didi

java - 将查询转换为 java jdbc 模板中的参数化准备语句

转载 作者:行者123 更新时间:2023-12-01 19:49:06 28 4
gpt4 key购买 nike

如何在 Spring JDBC 中将普通查询转换为参数化预准备语句?以下是我试图更改的查询片段:

private String queryBuilder(Request request, Map<String, String> action) {
StringBuilder builder = new StringBuilder();
builder.append("select * " +
"from google_play " +
"where ID = '" + request.getId() + "' and " +
"SYS_CD = '" + request.getSystemCd() + "' and " +
"SYS_DT >='"+request.getSystemDate+"'");
return builder.toString();
}

有人可以建议一种正确的方法来更改此查询以避免 SQL 注入(inject)吗?我已在 google 上搜索了此问题的解决方案,但找不到确切的解决方案。

最佳答案

我建议开始使用 Spring 的 JDBCTemplate,它将帮助您清理查询:

这将使您可以选择以以下方式指定参数:

final String QUERY = "select * " +
"from google_play " +
"where ID = ? and " +
"SYS_CD = ? and " +
"SYS_DT >= ?);

然后用以下方式查询:

YOUR_CLASS[] yourArray = jdbcTemplate.queryForObject(QUERY, request.getId(), request.getSystemCd(), request.getSystemDate, YOUR_CLASS[]);

YOUR_CLASS 可以是一个 Person,如果您正在查询 Person 表,我相信在您的情况下它会类似于 GooglePlay 实体。

那里有非常好的教程:

关于java - 将查询转换为 java jdbc 模板中的参数化准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52109608/

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