我想在hibernate中进行中文查询
比如from Test t where t.Name="张三"
控制台就输出找不到
然后看它的查询代码就是 where t.Name=???
试了将中文转换
String str=new String(("张三").getBytes("iso-8859-1"),"gb2312");
from Test t where t.Name='"+str+"'"也还是一样的
哪位知道要怎么搞?
比如from Test t where t.Name="张三"
控制台就输出找不到
然后看它的查询代码就是 where t.Name=???
试了将中文转换
String str=new String(("张三").getBytes("iso-8859-1"),"gb2312");
from Test t where t.Name='"+str+"'"也还是一样的
哪位知道要怎么搞?
解决此问题的办法:
Query query=session.createQuery("from Test t where t.Name=:name");
query.setString("name","张三");你试试。
如果还不对,希望贴出更多的错误!
他用?代表字段的值;
你插入一个数据,比如session.save(对象);
然后,看看里面是不是乱码;
控制台不显示值滴`~~~
喷血,那是命名搜索..........
楼主是设show_sql为true;
然后问为什么控制台为什么显示的语句中where name = ?
叹气...
是Hibernate进行查询的时候不能直接用query=session.CreateQuery("from Test t where t.Name like '%张三%'");
而要query=session.CreateQuery("from Test t where t.Name like ?");
query.setParameter(0,"%张三%")
喷你的血去吧!