一、绑定参数法:
?
Sql代码
Session?session=HibernateUtil.getSessionFactory
().getCurrentSession();
session.beginTransaction();
String?strSQL="from?Classes?as?a?where?a.classno?like?:name";
Query?query?=?session.createQuery(strSQL);
query.setString("name",?"%"+OId+"%");
List?result=query.list();
[sql]?view?plaincopyprint?
Session?session=HibernateUtil.getSessionFactory??
().getCurrentSession();???
session.beginTransaction();??
String?strSQL="from?Classes?as?a?where?a.classno?like?:name";??
Query?query?=?session.createQuery(strSQL);??
query.setString("name",?"%"+OId+"%");??
List?result=query.list();??
Session?session=HibernateUtil.getSessionFactory?
().getCurrentSession();?
session.beginTransaction();?
String?strSQL="from?Classes?as?a?where?a.classno?like?:name";?
Query?query?=?session.createQuery(strSQL);?
query.setString("name",?"%"+OId+"%");?
List?result=query.list();二、在面向对象的查询语言 HQL 中
?
Sql代码
Session?session?=?HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List?result=session.createQuery("from?Classes?as?a?where?a.classno
like?"?'%"+OId+"%'").list();
[sql]?view?plaincopyprint?
Session?session?=?HibernateUtil.getSessionFactory().getCurrentSession();???
session.beginTransaction();??
List?result=session.createQuery("from?Classes?as?a?where?a.classno???
like?"?'%"+OId+"%'").list();??
Session?session?=?HibernateUtil.getSessionFactory().getCurrentSession();?
session.beginTransaction();?
List?result=session.createQuery("from?Classes?as?a?where?a.classno?
like?"?'%"+OId+"%'").list();三、模糊查询参数化
Sql代码
Session?session=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
List?result=session.createQuery("from?Classes?as?a?where?a.classno
like?:name").setParameter("pid",OId).list();
[sql]?view?plaincopyprint?
Session?session=HibernateUtil.getSessionFactory().getCurrentSession();??
session.beginTransaction();??
List?result=session.createQuery("from?Classes?as?a?where?a.classno????
like?:name").setParameter("pid",OId).list();
在 hql 中直接用 select ..... where addr like ... and name like ... 语句进行筛选
from project o where 1=1 and prj_name like ? and o; query:from project o where 1=1 and prj_name like '+实际查询条件+",这和平时写sql语句是不同的?:from project o where 1=1 and o。
另外 还有一个lucene.prjname like .setstring(i?.chedong.com/tech/lucene;/.chedong;这里的java技巧(hibernate模糊查询以及参数化的问题)
----------------------------------------------------------------------
其实造成这个问题的根本原因还是对hibernate的使用不太了解;;):基于java的全文检索引擎简介
可以参阅下面
http;/:from project o where 1=1 and prj_name like ',要特别关注一下.prj_name like ' 注意参数中第一个百分号的左边与第二个百分号的右边都没有单引号://www;/。另外还应该了解一下俩点的区别
hql;%"/%strcond%'://www;%strcond%':from project o where 1=1 and o;这里prj_name 应该是数据库表中的实际字段名
hql.com/tech/lucene;/?'/?不视为占位参数
hql;//这里prj_name 应该是实体类的属性名
hql.isdeleted=;%", ",改成这样就没错了;设置参数值时会自动在参数值两边加上单引号
分词!! 上海 和王 应该是两个字段,那么为每个字段 都like一下吧!
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....