hibernate查询语言



package com.ittx.hibernate.dao;

import java.util.Date;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.ittx.hibernate.model.User;

public class UserTest {
	Session session;
	
	//junit测试,先执行before,后内容,最后执行after,这样减少重复代码量
	@Before
	public void before(){
		Configuration configuration = new Configuration().configure();
		SessionFactory sessionFactory = configuration.buildSessionFactory(
				new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build());
		session = sessionFactory.getCurrentSession();  //sessionFactory.openSession()
		session.beginTransaction();
	}
	
	@After
	public void after(){
		session.getTransaction().commit();
	}
	
	@Test
	public void testAddUser() {
		User user = new User(1,"张三","abcd",new Date());
		session.save(user);
	}
	
	@Test
	public void testSelectUserById(){
//		User user = (User) session.get(User.class, 1);
		User user = (User) session.load(User.class, 1);
		System.out.println(user);
	}
	@Test
	public void testUpdate(){
//		User user = new User(1,"李四1","123",new Date());
//		session.update(user);
		
		User user = (User) session.get(User.class, 1);
		user.setUserName("王二");
		
		session.update(user);
	}
	
	@Test
	public void testDelete(){
//		User user = new User(1,"李四1","123",new Date());
//		session.delete(user);
		
		User user = (User)session.get(User.class, 2);
		session.delete(user);
	}
	
	@Test
	public void testSelectAllUser(){
		String hql = "FROM User ORDER BY id DESC ";
		
		Query query = session.createQuery(hql);
		List<User> userLists = query.list();
		for(User user:userLists){
			System.out.println(user);
		}
	}
	
	@Test
	public void testSelectUserName(){
		String hql = "SELECT u.userName FROM User AS u";
		
		Query query = session.createQuery(hql);
		List<String> userLists = query.list();
		for(String user:userLists){
			System.out.println(user);
		}
	}
	@Test
	public void testSelectdUserByUsername(){
		String hql = "FROM User WHERE userName = :name AND passWord = :psw";
		Query query = session.createQuery(hql);
		query.setParameter("name", "张三");
		query.setParameter("psw", "abcd");
		User user = (User) query.uniqueResult();
		System.out.println(user);
	}
	
	@Test
	public void testUpdateUsers(){
		String hql = "UPDATE User SET userName=:name WHERE passWord=:psw";
		Query query = session.createQuery(hql);
		query.setParameter("name", "麻子");
		query.setParameter("psw", "123");
		int order = query.executeUpdate();
		System.out.println("order :"+order);
	}
	
	@Test
	public void testDeleteUserByUserName(){
		String hql = "DELETE User WHERE userName = :name";
		Query query = session.createQuery(hql);
		query.setParameter("name", "张三");
		query.executeUpdate();
		
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值