myeclipse中使用select语句查询mysql中的汉字,就是查不出来,也没有乱码,单独操作数据库时能查出来
select*fromdepartmentwherebinarydept_namelike'%"+name+"%';如上sql语句,其中name为客户端传过来的值,想从数...
select * from department where binary dept_name like '%"+name+"%';
如上sql语句,其中name为客户端传过来的值,想从数据库中模糊查询出相匹配的记录,在另外一张jsp页面中显示出来。
现在直接在数据库中运行此语句能查询出结果,但为什么在myeclipse中,将其放入dao层编译运行时查不出记录,结果为空?
编译时我用system.out输出name接收的值时也能查询出指定汉字,也不是乱码,可显示结果的jsp页面就是取不到值?求解!!! 展开
如上sql语句,其中name为客户端传过来的值,想从数据库中模糊查询出相匹配的记录,在另外一张jsp页面中显示出来。
现在直接在数据库中运行此语句能查询出结果,但为什么在myeclipse中,将其放入dao层编译运行时查不出记录,结果为空?
编译时我用system.out输出name接收的值时也能查询出指定汉字,也不是乱码,可显示结果的jsp页面就是取不到值?求解!!! 展开
5个回答
展开全部
老兄啊 当然有问题啦
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始终是空的,所以查询不到结果!
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始终是空的,所以查询不到结果!
展开全部
1.首先你打印出name看看是否有值
2.然后你把sql语句打印出来看看是否是正常的
3.你有没有使用hibernate框架呢?好像其中一个版本有一个bug。查询中文就查不出来。如果是的你再问我。
2.然后你把sql语句打印出来看看是否是正常的
3.你有没有使用hibernate框架呢?好像其中一个版本有一个bug。查询中文就查不出来。如果是的你再问我。
追问
name有值,我把打印出的sql语句复制到navaicat for mysql查询的话能查询出来。
我这用的是JSP+JAVABEAN啊
追答
String sql="select * from department where dept_name like '%"+name+"%'";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
1.首先你看看你的数据库连接是不是null
2.尝试使用上面的代码来执行sql
3.看看是不是执行过程中有什么异常
4.debug一下代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的%号有问题。因为单独在数据库里没问题,它不涉及java语言。但是到java语言里,这么就是java和数据库打交道了。建议用预处理
追问
能否把代码写出来呢,我不太会啊,谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上代码~~研究下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打印下看能查出来结果集不.
更多追问追答
追问
不能啊,如果查字符或字符串就能正常显示
追答
能接受到name的值,你的select语句放到数据库又正常,
肯定就是你结果集这的问题,在仔细看看.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询