gpt4 book ai didi

java - 如何在 JDBC 中使用 MySQL like operator?

转载 作者:可可西里 更新时间:2023-11-01 06:55:33 25 4
gpt4 key购买 nike

我的代码中有以下语法,但当我尝试在 JDBC 中使用 LIKE 运算符时它不起作用。当它刚好相等时,它以这种方式工作得很好:

ResultSet resultSet = statement.executeQuery("SELECT * 
FROM drawings
WHERE name = '"+ DT +"'");

但是如果我想使用 LIKE 运算符作为通配符进行搜索,我会不断收到“%”不是有效字符的错误消息。如何正确使用 LIKE 运算符?

最佳答案

来自评论:

query=("SELECT * FROM drawings WHERE name LIKE '"%DT%"'");

这不会编译。假设 DT 是一个变量,那么它应该看起来像

query = "SELECT * FROM drawings WHERE name LIKE '%" + DT + "%'";

(注意语法高亮,% 必须是 SQL 字符串的一部分!)

但是,像在 SQL 查询中那样连接用户控制的字符串变量为成功打开了大门 SQL injection attacks . Learn如何使用 PreparedStatement并改用它。

String sql = "SELECT * FROM drawings WHERE name LIKE ?";
// ...
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, "%" + DT + "%");
resultSet = preparedStatement.executeQuery();
// ...

关于java - 如何在 JDBC 中使用 MySQL like operator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6599950/

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