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_