Hibernate HQL查询
来源:互联网 发布:java与javascript区别 编辑:程序博客网 时间:2024/06/16 02:51
package cn.itcast.g_query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.hibernate.query.Query;import org.junit.Test;import java.util.ArrayList;import java.util.List;/** * Created by 朱博文 on 2017/6/30. */public class App { private static SessionFactory sf = null; static { sf = new Configuration().configure().addClass(Dept.class).addClass(cn.itcast.g_query.Employee.class).buildSessionFactory(); } @Test public void all() { Session session = sf.openSession(); Transaction transaction = session.beginTransaction(); //主键查询 //Dept dept = session.get(Dept.class, 12); //Dept dept = session.load(Dept.class, 12); //对象导航查询 //Dept dept = (Dept) session.get(cn.itcast.g_query.Dept.class,1); //System.out.println(dept.getDeptName()); //HQL查询 //注意:auto—import=true一定是true否则要指定包名. //session.createQuery("from Employee"); //Query query = session.createQuery("from Dept"); //List<Dept> list = query.list(); //for (Dept l : list) { // System.out.println(l.getDeptName()); // System.out.println("l.getDeptId() = " + l.getDeptId()); //} //a.查询全部列// Query query = session.createQuery("from Dept");// System.out.println(query.list()); //b.查询指定的列// Query query1 = session.createQuery("select d.deptId,d.deptName from Dept d");// System.out.println(query1.list()); //c.查询的指定的列封装为对象,一定要提供对象的带参构造器// session.createQuery("select new Dept(d.deptId,d.deptName) from Dept d"); //d.条件查询:一个条件、多个条件and or /between and/模糊查询 //条件查询:占位符// Query q = session.createQuery("from Dept d WHERE deptName =?");// q.setParameter(0, "财务部"); //条件查询:命名参数// Query query = session.createQuery("from Dept d where deptId=:myId and deptName=:myName");// query.setParameter("myId", 12);// query.setParameter("myName", "应用开发部");// System.out.println(query.list());// Query query = session.createQuery("from Dept where deptId between :index and :end");// query.setParameter("index", 1);// query.setParameter("end", 2); //模糊查询// Query query = session.createQuery("from Dept d where deptName like ?");// query.setParameter(0, "%部%");// System.out.println(query.list()); //e.聚合函数统计 这个时候用list就不合适了 // SELECT COUNT(*) FROM t_Dept -- 统计总记录 //SELECT COUNT(1) FROM t_Dept --统计总记录 ,效率更高 //SELECT COUNT(deptName) FROM t_Dept --忽略NULL值// Query query = session.createQuery("select count(*) from Dept");// Long l = (Long) query.uniqueResult();// System.out.println(l); //f.分组查询// Query query = session.createQuery("select dept.deptId,count(*) from Employee group by dept.deptId HAVING count(*) > 1");// System.out.println(query.list()); //g.连接查询 //内连接[映射已经配置好了关系,关联的时候,直接写对象的属性即可]// Query query = session.createQuery("from Employee e inner join e.dept"); //数组中第一个元素是Employee// List<Object[]> list = query.list();// Query query = session.createQuery("from Employee e left join e.dept");// Query query = session.createQuery("from Employee e right join e.dept"); //h.迫切内连接 d迫切查询的特点是把emps封装到Dept里面,不用object数组.// Query query = session.createQuery("from Dept d inner join fetch d.emps"); //i.迫切左外连接// Query q = session.createQuery("from Dept d left join fetch d.emps");
//HQL放在映射文件中// Query query = session.getNamedQuery("getAllDept");transaction.commit(); session.close(); }}
<!--存放sql语句--><query name="getAllDept"> from Dept d where deptId = :myid or deptName = :myName</query><query name="test01"> <![CDATA[from Dept d where deptId < ? ]]> </query>
阅读全文
0 0
- 【Hibernate】Hibernate HQL 查询
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- Hibernate 查询语言(HQL)
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- Hibernate查询语言:HQL
- 查询 Hibernate HQL
- hibernate查询语句---HQL
- Hibernate查询语言HQL
- windows10下使用Charles进行移动端抓包
- 1166 敌兵布阵(线段树求区间和)
- 面试问题你觉得你能胜任么
- 1698 Just a Hook(线段树段修改)
- 安装Boost
- Hibernate HQL查询
- 通达信公式破解
- 【Docker容器的跨主机访问】- 使用weave实现跨主机容器连接
- 汇编语言之80X86寄存器组相关知识
- design项目:3、代码创建数据库表
- 汇编语言之寻址方式
- jdbc
- mapper,reducer,OutputFormat
- 2017.7.4