myeclipse中使用select语句查询mysql中的汉字,就是查不出来,也没有乱码,单独操作数据库时能查出来

2025-01-07 00:52:48
推荐回答(5个)
回答1:

老兄啊 当然有问题啦
Connection conn=DBUtil.getConnection();
PreparedStatement ps;
String sql="select * from department where dept_name like '%"+name+"%'";
ps = conn.prepareStatement(sql);
System.out.println("sql---"+sql);
ResultSet rs=ps.executeQuery();
System.out.println(rs);
while(rs.next()){

在这里你使用了预编译prepareStatement,但在在写SQL语句的时候你又用了字符串拼接,如果 你要使用字符串拼接,那么你就直接将这个查询的操作写到一个方法里面,然后将name的值当作参数传递进来。如果你想使用预编译,这里你就应该将name写成?,然后用ps.set(1,value)。我分析你的原因就是,你用了预编译却没有用set()方法赋值,用了字符串拼接却没有参name的值进来,最后like '%"+name+"%'"中的name始终是空的,所以查询不到结果!

回答2:

1.首先你打印出name看看是否有值
2.然后你把sql语句打印出来看看是否是正常的
3.你有没有使用hibernate框架呢?好像其中一个版本有一个bug。查询中文就查不出来。如果是的你再问我。

回答3:

你的%号有问题。因为单独在数据库里没问题,它不涉及java语言。但是到java语言里,这么就是java和数据库打交道了。建议用预处理

回答4:

上代码~~研究下。

回答5:

打印下看能查出来结果集不.