6、 测试类QuickStartTest 

有了上面的准备,那么我们开始来测试一下。这里我们用junit。

package test;

 

import junit.framework.Assert;

import junit.framework.TestCase;

 

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import org.py.hib.quickstart.User;

 

public class QuickStartTest extends TestCase {

    SessionFactory factory;

 

    String m_name = "ryanpoy";

 

    String m_name2 = "ryanpoy2";

 

    @Before

    public void setUp() throws Exception {

       System.out.println("start...");

       Configuration conf = new Configuration().configure();

       factory = conf.buildSessionFactory();

    }

 

   

    @Test public void testSave() throws Exception {

       System.out.println("\n=== test save ===");

       User u = new User();

       u.setName(m_name); // 设置用户名 = m_name

 

       Session session = null;

       Transaction tran = null;

       try {

           session = factory.openSession();

           tran = session.beginTransaction();

           session.save(u);

           tran.commit();

 

           Assert.assertEquals(u.getId() != null, true);

       } catch (Exception ex) {

           tran.rollback();

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

    }

 

   

    @Test public void testFind() throws Exception {

       System.out.println("\n=== test find ===");

       Session session = null;

       try {

           session = factory.openSession();

           User u = (User) session.createQuery("from User").list().get(0);

 

           Assert.assertEquals(true, u.getId() != null);

           Assert.assertEquals(m_name, u.getName());

       } catch (Exception ex) {

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

    }

 

   

    @Test public void testModify() throws Exception {

       System.out.println("\n=== test modify ===");

       Session session = null;

       Transaction tran = null;

       try {

           session = factory.openSession();

           tran = session.beginTransaction();

 

           User u = (User) session.createQuery("from User").list().get(0);

           u.setName(m_name2); // 修改用户名 = m_name2.(原来用户名= m_name)

           tran.commit();

 

       } catch (Exception ex) {

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

 

      

       System.out.println("\n=== test find after modify ===");

       try {

           session = factory.openSession();

           User u = (User) session.createQuery("from User").list().get(0);

 

           Assert.assertEquals(true, u.getId() != null);

           Assert.assertEquals(m_name2, u.getName());

       } catch (Exception ex) {

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

    }

 

   

    @Test public void testDelete() throws Exception {

       System.out.println("\n=== test delete ===");

       Session session = null;

       Transaction tran = null;

       try {

           session = factory.openSession();

           tran = session.beginTransaction();

 

           User u = (User) session.createQuery("from User").list().get(0);

           session.delete(u);

           tran.commit();

 

       } catch (Exception ex) {

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

 

      

       System.out.println("\n=== test find after delete ===");

       try {

           session = factory.openSession();

           Integer num = (Integer) session.createQuery("from User").list()

                  .size();

 

           Assert.assertEquals(0, num.intValue());

       } catch (Exception ex) {

           throw ex;

       } finally {

           if (session != null) {

              try {

                  session.close();

              } catch (Exception ex) {

                  // nothing to do

              } finally {

                  if (session != null)

                     session = null;

              }

           }

       }

    }

 

   

    @After

    public void tearDown() throws Exception {

       factory.close();

    }

 

}

7、 控制台输出

运行后,我们很欣慰的看到一路绿灯,全部通过了。那么测试没有问题。看控制台,会输出如下信息:

=== test save ===
Hibernate: insert into hibernatequickuse.user (name, id) values (?, ?)

=== test find ===
Hibernate: select user0_.id as id2_, user0_.name as name2_ from hibernatequickuse.user user0_

=== test modify ===
Hibernate: select user0_.id as id4_, user0_.name as name4_ from hibernatequickuse.user user0_
Hibernate: update hibernatequickuse.user set name=? where id=?

=== test find after modify ===
Hibernate: select user0_.id as id4_, user0_.name as name4_ from hibernatequickuse.user user0_

=== test delete ===
Hibernate: select user0_.id as id6_, user0_.name as name6_ from hibernatequickuse.user user0_
Hibernate: delete from hibernatequickuse.user where id=?

=== test find after delete ===
Hibernate: select user0_.id as id6_, user0_.name as name6_ from hibernatequickuse.user user0_

没有登录不能评论