我用SSH三个框架做的项目,写的语句是:
public List searchInfor(String str,int x,int y){
session = sessionFactory.openSession();
String hql = "from Information where ITitle like '%"+str.toString().trim()+"%'";
Query query = session.createQuery(hql);
query.setFirstResult(x);
query.setMaxResults(y);
List list = query.list();
System.out.print(list);
session.close();
return list;
}当str传进来英文值时可以查到数据,但是str传中文进来时查不出来数据,程序不报错,只是查不出来东西··这是为什么啊?哪里出错了????
(注:过滤器写过了,登陆的时候用中文名字登陆,传入的是中文值,都可以登陆进去)
public List searchInfor(String str,int x,int y){
session = sessionFactory.openSession();
String hql = "from Information where ITitle like '%"+str.toString().trim()+"%'";
Query query = session.createQuery(hql);
query.setFirstResult(x);
query.setMaxResults(y);
List list = query.list();
System.out.print(list);
session.close();
return list;
}当str传进来英文值时可以查到数据,但是str传中文进来时查不出来数据,程序不报错,只是查不出来东西··这是为什么啊?哪里出错了????
(注:过滤器写过了,登陆的时候用中文名字登陆,传入的是中文值,都可以登陆进去)
我把语句改成这样了,还是不行:
public List searchInfor(Information infor,int x,int y){
session = sessionFactory.openSession();
String hql = "from Information i where i.ITitle like '%"+infor.getITitle()+"%'";
Query query = session.createQuery(hql);
query.setFirstResult(x);
query.setMaxResults(y);
List list = query.list();
System.out.print(list);
session.close();
return list;
}
from Information where ITitle like '%"+str.toString().trim()+"%'这句看看是什么值,就知道原因了。
System.out.println(hql);
打印出这条hql语句看看。。
再一个就是""会不会出问题,其它没了,想不出。
应该是中文乱码问题,我碰到过一次的
你这种拼SQL的方式不对,改成站位符的方式 ? =: