Hibernate进行模糊查询
2016-04-20 17:41
218 查看
一、绑定参数法:
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();
二、在面向对象的查询语言 HQL 中
Sql代码
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();
Hibernate模糊查询参数化的问题
from Project o where 1=1 and o.isDeleted=? and o.prjName like ?; query.setString(i, "%"+实际查询条件+"%"); 注意参数中第一个百分号的左边与第二个百分号的右边都没有单引号,这和平时写SQL语句是不同的,要特别关注一下。另外还应该了解一下俩点的区别
HQL:from Project o where 1=1 and PRJ_NAME like '%strCond%';//这里PRJ_NAME 应该是数据库表中的实际字段名
HQL:from Project o where 1=1 and o.PRJ_NAME like '%strCond%';//这里PRJ_NAME 应该是实体类的属性名
HQL:from Project o where 1=1 and PRJ_NAME like '?';//这里的?不视为占位参数HQL:from Project o where 1=1 and PRJ_NAME like ?;//设置参数值时会自动在参数值两边加上单引号。
相关文章推荐
- Android热修复框架HotFix分析拓展
- 算法Sedgewick第四版-第1章基础-1.4 Analysis of Algorithms-003定理
- 练习2————1014
- JDK容器与并发—Map—ConcurrentSkipListMap
- JavaScript上传图片前预览
- JDK容器与并发—Map—ConcurrentHashMap
- Ipython notebook 一些技巧
- Cordova 环境搭建(Window)
- c语言格式字符串 % lf 和 %f
- HTTP中Get与Post的区别(附结合C++使用HTTP请求阅读笔记)
- 多态
- 页面中插入QQ表情
- 获取xml元素属性的名字
- 一个“\”引发的血案——记一次hyperpacer回放时的“500”错误
- C#的Infinity和NaN
- Flexbox布局技术研究
- javaScript 定时器
- @RequestParam注解的作用
- spring Boot打可执行的jar包
- 练习2————1008