zoukankan      html  css  js  c++  java
  • 初学Hibernate之Query扩展

    1、hql参数化查询,不明确值类型的用setParameter方法;明确查询结果为一条记录的用uniqueResult方法查询

    注意,参数化查询中方法setString 或 setParameter如果使用索引方式赋值,索引值从0开始,区别JDBC

    public void func1(){
        Session session=HibernateUtils.getSession();
        session.beginTransaction();
        String hql="from Customer where name=:name";
        Query query=session.createQuery(hql);
        //传参数
        //query.setString("name", "Tom");或者下面
      query.setParameter("name", "Tom"); //List
    <Customer>cusList=query.list();
    //如果明确知道查询结果就一条记录,则用下面方法
      Customer customer=(Customer) query.uniqueResult();
    session.getTransaction().commit(); session.close(); //System.out.println(cusList.get(
    0).getName());
      System.out.println(customer.getName()); }

    2、hql分页查询

    public void func2(){
        Session session=HibernateUtils.getSession();
        session.beginTransaction();
        Query query=session.createQuery("from Customer");
        //设置起始行索引
        query.setFirstResult(1);
        //设置最多返回记录数量
        query.setMaxResults(2);
        List<Customer>cusList=query.list();
        session.getTransaction().commit();
        session.close();
        System.out.println(cusList.get(0).getName()+","+cusList.get(0).getId());
        System.out.println(cusList.get(1).getName()+","+cusList.get(1).getId());
        
    }

    3、qbc分页查询

    public void func1(){
        Session session=HibernateUtils.getSession();
        session.beginTransaction();
        
        Criteria criteria=session.createCriteria(Customer.class);
        //设置起始行索引
        criteria.setFirstResult(1);
        //设置最多返回记录数量
        criteria.setMaxResults(2);
        List<Customer>cusList=criteria.list();
        
        System.out.println(cusList.get(0).getName()+","+cusList.get(0).getId());
        System.out.println(cusList.get(1).getName()+","+cusList.get(1).getId());
        session.getTransaction().commit();
        session.close();
    }

    4、qbc条件查询

    public void func2(){
        Session session=HibernateUtils.getSession();
        session.beginTransaction();
        Criteria criteria=session.createCriteria(Customer.class);
        //设置查询条件,name等于Tom的
        criteria.add(Restrictions.eq("name", "Tom"));
        //已明确查询结果为一条记录
        Customer customer=(Customer) criteria.uniqueResult();
        
        session.getTransaction().commit();
        session.close();
        System.out.println(customer.getName());
    }

    5、qbc复杂条件查询

    public void func3(){
        Session session=HibernateUtils.getSession();
        session.beginTransaction();
        Criteria criteria=session.createCriteria(Customer.class);
        //设置查询条件,name等于Tom的
        criteria.add(Restrictions.eq("name", "Jack")).add(Restrictions.or(Restrictions.gt("id", 3), Restrictions.eq("city", "上海")));
        List<Customer> cusList=criteria.list();
        
        session.getTransaction().commit();
        session.close();
        for (int i = 0; i < cusList.size(); i++) {
            System.out.println(cusList.get(i).getId());
        }
    }
  • 相关阅读:
    thinkphp框架 url 去除index.php
    读yaml文件警告: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details. data = yaml.load(fr)
    Appium 坐标定位元素
    Appium操作app弹窗
    AirtestIDE 教程(二)
    AirtestIDE 教程(一)
    Appium(五) aapt 不是内部或外部命令
    Appium(四) selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: You must include a platformName capability
    Appium(三) 打开 uiautomatorviewer.bat 闪退问题
    Appium(二) 下载安装 appium-python-client
  • 原文地址:https://www.cnblogs.com/hujiapeng/p/4731024.html
Copyright © 2011-2022 走看看