gpt4 book ai didi

java - 在java中执行查询不返回结果,但在mysql工作台中仍然返回结果

转载 作者:行者123 更新时间:2023-11-29 07:54:39 24 4
gpt4 key购买 nike

此查询:

    SELECT 
r.report_id,
r.user_id,
u.user_name,
u.user_mail,
d.department_name,
r.report_comment,
r.report_target_date,
r.report_create_date,
r.report_revised_date,
r.report_root_id,
report_revised_id
FROM
report r
JOIN
user u ON u.user_id = r.user_id
JOIN
department d ON u.department_id = d.department_id
JOIN
authority a ON r.user_id = a.user_src_id
AND a.user_dest_id = 131
WHERE
r.report_target_date BETWEEN '2014-07-23 23:59:00' AND '2014-08-22 00:00:00'
AND r.report_comment LIKE '%事務%'

在 mysql 工作台中,此查询有返回值,但在 java 中使用它时,它不会返回任何内容:

Statement stmt = connection.createStatement(); 
ResultSet rs = null;
rs = stmt.executeQuery(query);

在mysql工作台中,该查询有返回值,但rs返回为空。

最佳答案

您将日语字符传递到查询中。这很可能是字符编码问题。

使用 PreparedStatement 并通过 setString() 调用插入值,这将正确处理编码。

修改您的查询以包含参数(用问号标记):

...
WHERE
r.report_target_date BETWEEN '2014-07-23 23:59:00' AND '2014-08-22 00:00:00'
AND r.report_comment LIKE ?

以及 Java 代码:

PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, "%事務%"); // Parameter index is 1-based
ResultSet rs = ps.executeQuery();

关于java - 在java中执行查询不返回结果,但在mysql工作台中仍然返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480529/

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