Hibernate simple test process

package Test;

import java.util.List;
import java.util.Set;

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.tedu.entity.Book;
import com.tedu.entity.Student;
import com.tedu.entity.Teacher;
import com.tedu.entity.User;

public class TestCase {
		private SessionFactory sf ;
		//测试将临时状态数据保存并转为持久状态数据
		@Test
		public void Test1(){
			createSF();
			Session session = sf.openSession();
			Student s = new Student("刘维丰","16");
			s.setName("刘磊");
			//开启事务
			Transaction t = session.beginTransaction();
			System.out.println(s);
			t.begin();
			session.save(s);
			System.out.println(s);
			t.commit();
			session.close();
		}
		//测试将临时状态数据保存并转为持久状态数据
		@Test
		public void Test2(){
			createSF();
			Session session = sf.openSession();
			Teacher t = new Teacher("薛兆丰");
			Transaction transaction = session.beginTransaction();
			System.out.println(t);
			transaction.begin();
			session.save(t);
			transaction.commit();
			System.out.println(t);
			session.close();
			
		}
		//测试将持久状态数据进行修改
		@Test
		public void Test3(){
			createSF();
			Session session = sf.openSession();
			Transaction transaction = session.beginTransaction();
			transaction.begin();
			Student s = (Student) session.get(Student.class, 1);
			System.out.println(s);
			s.setName("Bill");
			System.out.println(s);
			transaction.commit();
			session.close();
		}
		//测试将持久状态数据转为游离状态数据再转为持久状态并且修改
		@Test
		public void Test4(){
			createSF();
			Session session = sf.openSession();
			Transaction transaction = session.beginTransaction();
			transaction.begin();
			Student s = (Student) session.get(Student.class, 1);
			System.out.println(s);
			//将session转换为游离状态
			session.evict(s);
			//解除游离状态
			session.update(s);
			s.setName("Bill");
			System.out.println(s);
			transaction.commit();
			session.close();
		}
		//测试将持久状态数据转为游离状态数据再转为临时状态
		@Test
		public void Test5(){
			createSF();
			Session session = sf.openSession();
			Transaction transaction = session.beginTransaction();
			transaction.begin();
			Student s = (Student) session.get(Student.class, 3);
			System.out.println(s);
			//将session转换为游离状态
			session.evict(s);
			//直接将数据转为临时状态(即删除)
			session.delete(s);
			s.setName("Bill");
			System.out.println(s);
			transaction.commit();
			session.close();
		}
		//测试HQL数据
		@Test
		public void Test6(){
			createSF();
			Session session = sf.openSession();
			String HQL =  "from Student where name like '%刘%'";
			Query query = session.createQuery(HQL);
			//用query对象查找数据
			List<Student> list = query.list();
			for(Student s : list){
				System.out.println(s);
			}
			session.close();
		}
		//测试多对一和一对多的关系以及懒加载
		@Test
		public void TestOneToMany(){
			createSF();
			Session session = sf.openSession();
			User user = (User) session.get(User.class, 1);
			System.out.println(user.getId());
			System.out.println(user.getName());
			Set<Book> book = user.getBook();
			System.out.println(book.size());
			for (Book b : book){
				System.out.println(b);
			}
			session.close();
		}
		//创建SessionFactory对象
		public void createSF(){
			Configuration config = new Configuration();
			config.configure("hibernate.cfg.xml");
			sf = config.buildSessionFactory();
		}
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325564873&siteId=291194637
Recommended