1.下载junit相关的jar包,创建test源文件,添加相应的包,创建测试类。
2.TeacherTest.java
package com.wxh.hibernate.model;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.junit.BeforeClass;
import org.junit.Test;
public class TeacherTest {
@Test
public void test() {
Teacher t=new Teacher();
t.setId(4);
t.setName("t1");
t.setTitle("中级");
Configuration cfg=new AnnotationConfiguration();
SessionFactory sf=cfg.configure().buildSessionFactory();
Session session=sf.openSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
sf.close();
}
}
3.改进,一次初始化sessionfactory,以后直接用。
package com.wxh.hibernate.model;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class TeacherTest {
private static SessionFactory sf=null;
//单例初始化
@BeforeClass
public static void beforeClass(){
sf=new AnnotationConfiguration().configure().buildSessionFactory();//注意是annotationconfiguration
}
@Test
public void test() {
Teacher t=new Teacher();
t.setId(1);
t.setName("t1");
t.setTitle("中级");
Session session=sf.openSession();
session.beginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
}
@AfterClass
public static void afterClass(){
sf.close();
}
}
4.
注意:有时候配置文件写错了,
junit
可能不会报异常。
解决办法:
public static void main(String[] args){
beforeClass();
}
或者
@BeforeClass
public static void beforeClass(){
try {
sf=new AnnotationConfiguration().configure().buildSessionFactory();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@before 和 @after (每个方法都会执行)
@beforeClass和 @afterClass(只会执行一次)
在eclipse中build path 可以添加junit库,可以新建一个junitTestCase