【发布时间】:2012-11-02 10:42:54
【问题描述】:
我的 MySQL 数据库中有一个名为“statuses”的表,如下所示:
| "id" (int) | "text" varchar(50) | "hex_color" varchar(10) |
-------------------------------------------------------------
| 1 | EJ PÅBÖRJAD | #FF3300 |
| 2 | ARBETE PÅGÅR | #FFFF00 |
| 3 | AVVAKTAR | #80F0FF |
| 4 | ÅTGÄRDAD | #6DE37A |
-------------------------------------------------------------
这是我的 JDBC Java 代码:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(statement);
while(rs.next()){
Long pid = rs.getLong(1);
String ptext = rs.getString(2);
String hex_color = rs.getString(3);
status = new Statuses(pid, ptext, hex_color);
}
当statement 是:
SELECT id, text, hex_color FROM statuses WHERE text = 'EJ PÅBÖRJAD' - 1 个结果
SELECT id, text, hex_color FROM statuses WHERE text = 'ARBETE PÅGÅR' - 0 个结果
SELECT id, text, hex_color FROM statuses WHERE text = 'AVVAKTAR' - 1 个结果
SELECT id, text, hex_color FROM statuses WHERE text = 'ÅTGÄRDAD' - 1 个结果
为什么第二个语句的结果为 0? 当我自己在“mysql 命令行”中运行它时,我得到 1 个结果! 我已经检查过我使用的是排除字符集问题的相同字符集 (UTF-8)。
有人可以帮我解决这个问题吗?
亲切的问候,克莱德
【问题讨论】:
-
在代码中执行之前尝试打印语句。这可能会帮助您调试
-
我已经这样做了。它在执行之前显示
SELECT id, text, hex_color FROM statuses WHERE text = 'ARBETE PÅGÅR'