`

Hibernate hql

hql 
阅读更多
hql学习

1.helloworld
2、from
3、select
4、where
5、命名参数
6、query分页
7、hql排序和分组
8、关联查询
9、聚合函数
10、update
11、delete
12、insert
13、命名查询


package com.hibernate.h_02_hql;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import com.hibernate.util.HibernateSessionFactory;
import com.pojo.Payment;
import com.pojo.User;

public class TestHql {
	
	/**
	 * helloworld
	 */
	@SuppressWarnings("unchecked")
	
	public void testHelloWorld() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from User";
		Query query = session.createQuery(hql);
		List<User> list = query.list();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i).getUsername());
		}
		
		session.close();
	}
	
	
	
	/**
	 * from
	 */
	@SuppressWarnings("unchecked")
	
	public void testFrom() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from User u,Payment p";
		Query query = session.createQuery(hql);
		List<Payment> list = query.list();
		
		for(int i=0;i<list.size();i++){
			//System.out.println(list.get(i).getType());
			System.out.println(list.get(i));
		}
		
		session.close();
	}
	
	/**
	 * select
	 * 可通过数组显示属性
	 */
	@SuppressWarnings("unchecked")
	
	public void testSelect() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "select username from User u";
		Query query = session.createQuery(hql);
		List<String> list = query.list();
		for(String username : list){
			System.out.println(username);
		}
		
		hql = "select id,username from User u";
		query = session.createQuery(hql);
		list = query.list();
		for(Object obj : list){
			Object[] properties = (Object[]) obj;
			System.out.println(properties[0]+"----"+properties[1]);
		}
		
		session.close();
	}
	
	/**
	 * where
	 */
	@SuppressWarnings("unchecked")
	
	public void testWhere() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "select username from User where id > 2";
		Query query = session.createQuery(hql);
		List<String> list = query.list();
		for(String name : list){
			System.out.println(name);
		}
		hql = "select id,username from User where id > 2 or (username like '%zh%')";
		query = session.createQuery(hql);
		list = query.list();
		for(Object obj : list){
			Object[] pro = (Object[]) obj;
			System.out.println(pro[0]+"---"+pro[1]);
		}
		
		session.close();
	}
	
	/**
	 * 命名参数
	 */
	@SuppressWarnings("unchecked")
	
	public void testNamedParameter() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from User where id = :id";
		Query query = session.createQuery(hql);
		query.setString("id", "2");
		List<User> list = query.list();
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		hql = "from User where username = :username";
		User user = new User();
		user.setId("3");
		query = session.createQuery(hql);
		query.setEntity("username", user);
		list = query.list();
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i).getId()+"---"+list.get(i).getUsername());
		}
		
		
		session.close();
	}
	
	/**
	 * query分页
	 */
	@SuppressWarnings("unchecked")
	
	public void testQueryPage() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from User";
		Query query = session.createQuery(hql);
		query.setFirstResult(3);
		query.setMaxResults(2);
		List<User> list = query.list();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i).getUsername());
		}
		
		session.close();
	}
	
	/**
	 * 排序 分组
	 */
	@SuppressWarnings("unchecked")
	
	public void testOrderAndGroup() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "select username from User order by id desc,username asc";
		Query query = session.createQuery(hql);
		List list = query.list();
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		
		hql = "select count(*) from User group by Username";
		query = session.createQuery(hql);
		list = query.list();
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		session.close();
	}
	
	/**
	 * 关联查询    ???????????????
	 */
	@SuppressWarnings("unchecked")
	
	public void testAssociations() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from java.lang.Object";
		Query query = session.createQuery(hql);
		List list = query.list();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		
		session.close();
	}
	
	/**
	 * 聚合函数
	 */
	@SuppressWarnings("unchecked")
	
	public void testFunction() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "select count(distinct password) from User";
		Query query = session.createQuery(hql);
		List list = query.list();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		
		session.close();
	}
	
	/**
	 * update
	 */
	@SuppressWarnings("unchecked")
	@Test
	public void testUpdate() {
		Session session = HibernateSessionFactory.getSession();
		Transaction tx = session.beginTransaction();
		
		String hql = "update User set username='ttt' where id=21";
		Query query = session.createQuery(hql);
		int count = query.executeUpdate();
		System.out.println(count);
		
		tx.commit();
		session.close();
	}
	
	/**
	 * delete
	 */
	@SuppressWarnings("unchecked")
	
	public void testDelete() {
		Session session = HibernateSessionFactory.getSession();
		Transaction tx = session.beginTransaction();
		String hql = "delete from User where id=20";
		Query query = session.createQuery(hql);
		int count = query.executeUpdate();
		System.out.println(count);
		tx.commit();
		session.close();
	}
	
	/**
	 * insert
	 * 不支持values 必须使用select
	 */
	@SuppressWarnings("unchecked")
	
	public void testInsert() {
		Session session = HibernateSessionFactory.getSession();
		Transaction tx = session.beginTransaction();
		
		//String hql = "insert into User(id,username) select '20',username from User where id=1";
		String hql = "insert into User(id,username) select '21','sss' from User where id=1";
		Query query = session.createQuery(hql);
		int count = query.executeUpdate();
		System.out.println(count);
		tx.commit();
		session.close();
	}
	
	/**
	 * 命名查询   ?????????????????
	 */
	@SuppressWarnings("unchecked")
	
	public void testNamdQuery() {
		Session session = HibernateSessionFactory.getSession();

		String hql = "from java.lang.Object";
		Query query = session.createQuery(hql);
		List list = query.list();
		
		for(int i=0;i<list.size();i++){
			System.out.println(list.get(i));
		}
		
		session.close();
	}

}

分享到:
评论
2 楼 NNBchuang 2012-03-02  

1 楼 jzq413026 2012-03-01  
  灰常的不错!

相关推荐

Global site tag (gtag.js) - Google Analytics