我在DAO层执行sql语句,
sql=select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%女%' and used=1
Query queryObject = getSession(sort).createQuery(sql).list();
执行后queryObject返回结果为0,但是同样这sql语句select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%女%' and used=1拿到数据库里执行是可用的,返回结果来3。如果姓名和性别为空select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%%' and used=1返回是有结果的。问题出在xm like '%%'和xb like '%%'如果没有值是可以查询的,
如果xm like '%张三%'或xb like '%男%'就查不出来了。小弟不知如何解决请求帮助。
sql=select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%女%' and used=1
Query queryObject = getSession(sort).createQuery(sql).list();
执行后queryObject返回结果为0,但是同样这sql语句select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%女%' and used=1拿到数据库里执行是可用的,返回结果来3。如果姓名和性别为空select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%%' and used=1返回是有结果的。问题出在xm like '%%'和xb like '%%'如果没有值是可以查询的,
如果xm like '%张三%'或xb like '%男%'就查不出来了。小弟不知如何解决请求帮助。
不知道是不是我数据库的事,我原来的是sql 2000 sp1 前几天升到sp4了
sql=select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like '%%' and xb like '%女%' and used=1
Query queryObject = getSession(sort).createQuery(sql).list(); 改成sql=select count(*) from BztzZyxx b where b.zzdm='0050030601' and b.bzdm=2 and b.xm like :name and b.xb like :gender and b.used=1
Query queryObject = getSession(sort).createQuery(sql);
queryObject.setParameter("name","",Hibernate.STRING);
queryObject.setParameter("gender","女",Hibernate.STRING);
List list = queryObject.list();试试看
sql=select count(*) from BztzZyxx where zzdm='0050030601' and bzdm=2 and xm like ? and xb like ? and used=1;
getSession(sort).createQuery(sql).setString(0,"%%").setString(1, "%女%").list();
如果还不行你就用Criteria criteria = getSession().createCriteria("BztzZyxx的模型类");
criteria.add(Expression.like("xm", "");
criteria.add(Expression.like("xb ", "女");
criteria.list();
你可以对同样的表,先从最简单的sql开始,逐步排查毛病在哪里
她的SQL并没有错...
错的是她调用的方法..
createQuery 应该改成 createSQLQuery还有xm like '%%' 这样的话意思是说 xm不为null的,
如果是null就不满足>_<
再次感谢大家。