Hibernate——对象增删改查与HQL查询

package Dao;

import java.util.List;

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

import domain.User;
import utils.HibernateUtils;

public class UserDao {
	//增加用户
	@Test
	public void addUser(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			User user = new User();//瞬时对象
			user.setName("小王");
			user.setSex("女");
			user.setAge(33);
			user.setHeight(180);
			user.setHobby("做饭");
			
			session.save(user);//持久对象
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//查询用户
	@Test
	public void findUser(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			User user = session.get(User.class, 4);//持久对象
			System.out.println(user);
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//修改用户
	@Test
	public void updateUser(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			User user = session.get(User.class, 4);
			user.setAge(25);
			user.setHobby("吃饭");
			session.update(user);//持久对象
			System.out.println(user);
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//删除用户
	@Test
	public void deleteUser(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			User user = session.get(User.class, 6);
			session.delete(user);
			System.out.println(user);
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	
	//简单查询
	@Test
	public void queryUser(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			Query query = session.createQuery("from User");
			List<User> users = query.list();
			for (User user : users) {
				System.out.println(user);
			}
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//属性查询
	@Test
	public void queryUserName(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			Query query = session.createQuery("select u.name from User u");
			List<String> names = query.list();
			for (String user : names) {
				
				System.out.println(user);
			}
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//实例化查询
	@Test
	public void queryUserExample(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			Query query = session.createQuery("from User where age = 21");
			List<User> users = query.list();
			for (User user : users) {
				System.out.println(user);
			}
			
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//统计查询
	@Test
	public void queryUserGroup(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			Query query = session.createQuery("select avg(u.age) from User u");
			Number avgage = (Number) query.uniqueResult();
			System.out.println("平均年龄为:"+avgage);
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
	//子查询
	@Test
	public void queryUserIn(){
		Session session = null;
		Transaction ts = null;
		try {
			session = HibernateUtils.getSession();
			ts = session.beginTransaction();
			
			Query query = session.createQuery("from User u where u.age>(select avg(age) from User)");
			User user = null;
			List list = query.list();
			for (int i =0;i<list.size();i++) {
				user = (User) list.get(i);
				System.out.println(i+"姓名:"+user.getName()+"——年龄:"+user.getAge());
			}
			ts.commit();
			
		} catch (Exception e) {
			if(ts != null)
			{
				ts.rollback();
			}
			e.printStackTrace();
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值