mysql中文查询
用JDBC查询的时候SQL语句中带有中文就没有任何反映~~也不提示任何错误~~
package com.ld.bak;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ChineseQuery {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
try {
String url = "jdbc:mysql://localhost:3306/lxs?useUnicode=true&characterEncoding=utf-8";
Connection conn = DriverManager.getConnection(url, "root",
"6573251");
Statement stmt = conn.createStatement();
String sql1 = "SELECT * FROM tbtest WHERE username ='留学生'";
String sql2 = "SELECT * FROM tbtest WHERE username ='lxs'";
ResultSet rs = stmt.executeQuery(sql1);
while (rs.next()) {
System.out.println(rs.getString(2) + "\t" + rs.getString(3));
}
} catch (SQLException se) {
se.printStackTrace();
System.out.println(se.getLocalizedMessage());
System.out.println(se.getErrorCode());
}
}
}
SQL2正常,SQL1没有任何反映~
JDBC驱动是在MYSQL官网上下的2005.12月发布的那个~~
数据库就三个字段,id(int),username(char),password(char)
记录就两条:1 lxs lxs
2 留学生 留学生
================================================
谢谢哦~~~~
问题点数:100、回复次数:3Top
1 楼cathl(util)回复于 2006-03-14 11:56:28 得分 20
MYSQL的中文问题。找不到中文记录~~Top
2 楼hy2003fly()回复于 2006-03-14 12:47:39 得分 80
首先确定你数据库的字符集是不是UTF-8
mysql> show variables like "%char%";
+--------------------------+--------------------------+
| Variable_name | Value |
+--------------------------+--------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | C:\mysql\share\charsets\ |
+--------------------------+--------------------------+
8 rows in set (0.03 sec)
然后你将这句转换后再打印出来看看有没有乱码
String sql1 = "SELECT * FROM tbtest WHERE username ='留学生'";
sql1=new String(sql1.getBytes("ISO-8859-1"),"UTF-8");
System.out.println(sql1);
没有乱码后再执行查询,你试试看行不行?
Top
3 楼yun6573252()回复于 2006-03-14 14:06:38 得分 0
谢谢哦~~utf-8的问题Top




