Hibernate第五次作业

 
 
实验报告三

代码下载地址:

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]);
			        }		  
		  }		  	  
}



猜你喜欢

转载自blog.csdn.net/lettyisme/article/details/80501215