• HQL查询基础


    package qau.edu.search;

    import qau.edu.search.Employee;
    import java.util.List;

    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;

    public class SearchTest {


    private Session session ;
    private Transaction tr ;


    @Before
    public void init(){

    // 打开Session ;

    session = new Configuration().configure().buildSessionFactory().openSession();

    // 开启事务;

    tr = session.beginTransaction();


    }


    @After
    public void destroy(){

    // 提交事务;

    tr.commit();

    // 关闭会话;

    session.close();
    }

    // “位置绑定”查询;

    @Test
    public void testHQL() {

    // 创建Query对象;

    String hql = "from Employee e where e.name like ? and e.sal > ? ";

    Query query = session.createQuery(hql);

    // 绑定参数;

    // 这里的数字0和1表示的含义要知道,表示的是占位符,从这里能体会到“位置绑定”的含义;

    query.setString(0, "%%")
    .setFloat(1, 5000);

    // 打印输出;

    List<Employee> emps = query.list();

    System.out.println(emps.size());


    }

    // “命名参数”的查询;

    @Test
    public void testHQL2() {

    // 创建Query对象;

    // 注意的是:在进行编写查询条件的时候,:是紧紧跟着后面的命名的,不允许出现空格。

    String hql = "from Employee e where e.name like :name and e.sal > :sal ";

    Query query = session.createQuery(hql);

    // 绑定参数;

    query.setString("name", "%%")
    .setFloat("sal", 5000);


    // 打印输出;

    List<Employee> emps = query.list();

    System.out.println(emps.size());


    }


    // 实体绑定;
    @Test
    public void testHQL3() {

    // 创建Query对象;

    // 注意的是:在进行编写查询条件的时候,:是紧紧跟着后面的命名的,不允许出现空格。

    String hql = "from Employee e where e.name like :name and e.sal > :sal and dept = :dept";

    Query query = session.createQuery(hql);

    // 绑定参数;

    Department dept = (Department)session.get(Department.class, 80);

    query.setString("name", "%%")
    .setFloat("sal", 5000)
    .setEntity("dept", dept);


    // 打印输出;

    List<Employee> emps = query.list();

    System.out.println(emps.size());


    }

    }

    如果没有一直坚持,也不会有质的飞跃,当生命有了限度,每个人的价值就会浮现。
  • 相关阅读:
    欧几里得算法&&扩展欧几里得算法
    POJ-1006 Biorhythms (生物节律)
    第3周实践项目7 删除链表元素最大值
    第3周实践项目1 顺序表的基本运算
    第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
    第3周实践项目5 -顺序表的应用 拆分单链表
    SDUT-2144 图结构练习——最小生成树
    SDUT-3362 数据结构实验之图论六:村村通公路
    Codeforces Round #616 (Div. 2)题解
    1.29 educational round 81
  • 原文地址:https://www.cnblogs.com/shiguangshuo/p/4104727.html
Copyright © 2020-2023  润新知