閱讀105 返回首頁    go 阿裏雲 go 技術社區[雲棲]


我寫的對HIBERNATE增刪查的JUNIT測試

代碼如下所示:

package com.localapp.hibernate;

import static org.junit.Assert.fail;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JUnitSysUserDao {
	
	//定義局部變量
    Session session = null;
    Transaction transaction = null;
    SysUserDAO sysUserDAO = null;
    SysUser sysUser = null;

    private static SessionFactory sf = null;
    
	@BeforeClass
	public static void beforeClass() {
		//防止出現Junit的“靜默”BUG的方法一
		try {
			sf = new AnnotationConfiguration().configure().buildSessionFactory();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		sysUserDAO = new SysUserDAO();
		session = sysUserDAO.getSession();
	}

	@After
	public void tearDown() throws Exception {
		session.close();
		sysUserDAO = null;
	}

	@Test
	public void testSave() {
		//fail("Not yet implemented");
		//sysUser.setUserId(3);
		
		SysUser sysUser= new SysUser();
		sysUser.setUserName("aaa");
//		Configuration cfg=new Configuration();
//		SessionFactory sf = cfg.configure().buildSessionFactory();
		Session session = sf.openSession();
		session.beginTransaction();//執行操作
        session.save(sysUser);
        session.getTransaction().commit();//提交
        session.close();
		
	}

	@Test
	public void testFindById() {
		
//		transaction = this.session.beginTransaction();
//		sysUser =  sysUserDAO.findById(2);
//        //transaction.commit();
//		System.out.println("sysUser="+sysUser.getUserName()+": "+sysUser.getUserId());
//        Assert.assertNotNull(sysUser);
		SysUser sysUser= new SysUser();
		Session session = sf.openSession();
		session.beginTransaction();//執行操作
		sysUser=sysUserDAO.findById(6);
		System.out.println("sysUser="+sysUser.getUserName()+": "+sysUser.getUserId());
		 session.getTransaction().commit();//提交
	        session.close();
	}

//    public final void testFindById() { //測試查詢記錄
//        Dept 部門 = null;
//
//       部門 = this.部門訪問對象.findById((long) 20);
//        Assert.assertNotNull(部門);
//    }
	
	@Test
	public final void testDelete() {
//		SysUser sysUser= new SysUser();
//		sysUser.setUserName("測試");
//		Session session = sf.openSession();
//		session.beginTransaction();//執行操作
//		session.delete(sysUser);
//        session.getTransaction().commit();//提交
//        session.close();
        
        /***
         * 以下是第二種測試
         */
        SysUser sysUser= new SysUser();
		Session session = sf.openSession();
		session.beginTransaction();//執行操作
		sysUser=sysUserDAO.findById(6);
		session.delete(sysUser);
        session.getTransaction().commit();//提交
        session.close();
	}
//    public final void testDelete() { //測試刪除記錄
//        Dept 部門 = new Dept();
//        部門.setDeptno((long) 90);
//        部門.setDname("測試部門");
//        部門.setLoc("中國-佛山");
//
//       事例 = this.會話.beginTransaction();
//        this.部門訪問對象.delete(部門);
//        事例.commit();
//
//       部門 = null;
//        部門 = this.部門訪問對象.findById((long) 90);
//
//       Assert.assertNull(部門);
//    }


}



最後更新:2017-04-02 17:28:39

  上一篇:go 數據類型
  下一篇:go Android防止內存溢出淺析