实验报告三
代码下载地址:
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]);
}
}
}