hql语句命名参数查询示例

本文介绍了在Hibernate中使用命名参数查询的方法及其优势,并对比了使用问号占位符的方式。此外,还展示了如何利用Criteria API进行更复杂的对象查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Session  session = this.getSession();

 

String hql = "from TblFwxx fw where fw.title like ?";

 

Query query = session.createQuery(hql);

 

query.setString(0,"%艳儿%");

 

上面使用“?”作占位符,然后通过Query的setString方法逐个设置参数的值。但这样降低了代码的可读性。

所以以后尽量使用“命名参数查询”来解决这些问题

 

把上面的hql语句改为:  String hql = "from TblFwxx fw where fw.tltle like :zt";

                                 

                               Query query = session.createQuery(hql);

 

                               query.setString("zt","艳儿");

 

 

 

=============================

以前还讲到了Criteria查询  (也是对象查询)  

 

   主要是Criteria对象封装查询条件,并提供Restrictions等类别作辅助。  (具体用法请查找网络资源)

例:    public List search(TblFwxx condition){

                 Session session = this.getSession();

                 Criteria c = session.createCriteria(TblFwxx.class);

                  if(null != condition){

                        if(condition.getTitle() != null && !condition.getTitle().equals(" ")){

                                c.add(Restrictions.like("title",condition.getTitle(),MatchMode.ANYWHERE));

                        }

                  }    

         }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值