• Hibernate allEq方法:设置一系列的相等条件

    allEq 方法用于设置一系列的相等条件,相当于多个 Restrictions.eq 方法的叠加。

    语法:

    allEq(Map propertyNameValues)

    参数说明:

    • propertyNameValues:参数为一个 Map 对象,其中包含了多个属性值的对应关系。

    返回值:Criterion 对象的示例。

    说明:应用 allEq 方法时,生成的相等表达式是通过 and 来连接的,也就是需要满足添加的所有条件。

    示例

    查询用户名为 sk 且密码为 111 的用户信息,关键代码如下:

    Criteria criteria = session.createCriteria(UserForm.class);  //获取Criteria对象
    Map map = new HashMap();  //创建Map对象
    map.put("username","sk");  //向Map中添加对象
    map.put("pwd","111");
    criteria.add(Restrictions.allEq(map));  //设置向导条件
    list = criteria.list();
    
    

    典型应用

    Restrictions 类的 allEq 方法可实现设置一系列的查询条件,并将这些查询条件保存在 Map 集合中。本示例实现使用该方法查询清华出版社出版的“Java从入门到精通”的图书价格。

    本示例使用 Hibernate 框架查询数据,在使用该框架前要创建与图书表 tb_bookes 对应的 JavaBean 对象 Books,以及其映射文件 Books.hbm.xml,可参考下载的源码。创建 Find 类,在该类中定义查询数据方法,关键代码如下:

    public static void main(String[] args){
      Session session = null;  //声明Session对象
      try{
        session = HibernateUtil.getSession();  //获取Session
        session.beginTransaction();  //开启事务
        Criteria criteria = session.createCriteria(Books.class);  //获取Criteria对象
        Map map = new HashMap();  //创建Map对象
        map.put("bName","Java开发宝典");  //向Map中添加对象
        map.put("bookConcern","机械工业");
        criteria.add(Restrictions.allEq(map));  //设置查询条件
        List list = criteria.list();  //获取查询结果集
        for(int i=0;i<list.size();i++){  //循环遍历查询结果集
          Books book = (Books)list.get(i);  //获取集合中元素
          System.out.println("机械工业的图书Java开发宝典的价格是:"+book.getPrice());
        }
        session.getTransaction().commit();  //提交事务
      }catch(Exception e){
        e.printStackTrace();
        session.getTransaction().rollback();  //出错将回滚事务
      }finally{
        HibernateUtil.closeSession(session);  //关闭Session对象
      }
    }

更多...

加载中...