Hibernate的QBE查询方式

使用QBE查询,我们可以将查询数据封装成对象,传递给Example进行查询,美中不足的是,QBE方式不能只能支持对象属性字段的等于查询,和字符串的模糊匹配,不能支持大于,等于的操作

 

package  Search.QBE;

import  java.io.File;
import  java.util.Iterator;
import  java.util.List;

import  org.hibernate.Query;
import  org.hibernate.Session;
import  org.hibernate.SessionFactory;
import  org.hibernate.Transaction;
import  org.hibernate.cfg.Configuration;
import  org.hibernate.criterion.Example;
import  org.hibernate.criterion.MatchMode;

public   class  Test  {


    
public static void main(String[] args){
        String filePath
=System.getProperty("user.dir")+File.separator+"src/Search/QBE"+File.separator+"hibernate.cfg.xml";
        File file
=new File(filePath);
        SessionFactory sessionFactory
=new Configuration().configure(file).buildSessionFactory();
        Session session
=sessionFactory.openSession();
        Transaction t
=(Transaction)session.beginTransaction();
        
        TestStu stu
=new TestStu();
        stu.setAge(
15);
        stu.setName(
"tom5");
        
        Example exampleStu
=Example.create(stu).
        
//查询条件为age=15 and name like %tom5%,并忽略大小写
        ignoreCase().enableLike(MatchMode.ANYWHERE);
        
//忽略age字段
        
//ignoreCase().enableLike(MatchMode.ANYWHERE).excludeProperty("age");
        
        List stuList
=session.createCriteria(TestStu.class).add(exampleStu).list();
        
for (Iterator iterator = stuList.iterator(); iterator.hasNext();) {
            TestStu object 
= (TestStu) iterator.next();
            System.out.println(object.getName());
        }

        
        
        t.commit();

    }


}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值