实验报告三
代码下载地址:
https://github.com/princesslhb/Hibernate.git
package com.Entity.User; 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.junit.Test; import com.Entity.Util.SessionFactiryUtil; /* * 1. 简单查询; * 2. 属性查询; * 3. 实例化查询; * 4. 统计查询; * 5. 子查询。 * **/ public class UserHQLQuery { Configuration cfg = null; SessionFactory sf = null; Session s = null; Transaction ts = null; /* * HQL子查询 */ @Test public void whereQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query =s.createQuery("from User as user where user.gender>ANY(select avg(u.gender) from User u) "); List<User> users = query.list(); for (int i=0;i<users.size();i++){ User u = (User)users.get(i); System.out.println(u.getUserId()+" "+u.getUserName()+" "+u.getPassword()+" "+u.getGender()); } } /* * HQL统计查询 */ @Test public void countQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query=s.createQuery("select distinct count(*) from User "); Object count = (Object)query.uniqueResult(); System.out.println("共有"+count+"条记录"); Query query1 = s.createQuery("select avg(u.gender) from User u"); Number average =(Number)query1.uniqueResult(); System.out.println("平均年级为:"+average); Query query2 = s.createQuery("select min(u.gender),max(u.gender),sum(u.gender) from User u"); List users = query2.list(); for (int i=0;i<users.size();i++){ Object obj[] = (Object[]) users.get(i); System.out.println("最小"+obj[0]+"--最大--"+obj[1]+"-总和-"+obj[2]); } } /* * HQL实例化查询 */ @Test public void instantiationQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query=s.createQuery("select new User(u.userName,u.password) from User as u"); List<User> users = query.list(); for (int i=0;i<users.size();i++){ User u = (User)users.get(i); System.out.println(u.getUserId()+" "+u.getUserName()+" "+u.getPassword()); } } /* * 简单HQL查询 */ @Test public void easyQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query=s.createQuery("from User"); List<User> users = query.list(); for (int i=0;i<users.size();i++){ User u = (User)users.get(i); System.out.println(u.getUserId()+" "+u.getUserName()+" "+u.getPassword()+" "+u.getGender()); } } /* * HQL属性查询 */ @Test public void propertyQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query=s.createQuery("select u.userName from User u"); List users = query.list(); for (int i=0;i<users.size();i++){ String username = (String) users.get(i); System.out.println(username); } } /* * HQL多个属性查询 */ @Test public void propertyManyQuery(){ cfg = new Configuration().configure(); sf = cfg.buildSessionFactory(); s = sf.openSession(); Query query=s.createQuery("select u.userName,u.gender from User u"); List users = query.list(); for (int i=0;i<users.size();i++){ Object[] object = (Object[]) users.get(i); System.out.println(object[0]+"--- ---"+object[1]); } } }