簡體   English   中英

如何在 JDBC 中使用類似 MySQL 的運算符?

[英]How to use MySQL like operator in JDBC?

我的代碼中有以下語法,但是當我嘗試在 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 注入攻擊敞開了大門。 了解如何使用PreparedStatement並改為使用它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM