工程的目录结构以及相关jar包如下:
StudentTest.java中的内容如下:
package com.bjsxt.model;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class StudentTest {
private static SessionFactory sessionFactory = null;
/*在类加载的时候执行*/
@BeforeClass
public static void beforeClass(){
sessionFactory = new Configuration().configure().buildSessionFactory();
}
@Test
public void testStudentSave(){
Student stu = new Student();
//这里使用的native id生成策略,所以不必设置id了
stu.setName("gaoweigang");
stu.setAge(25);
Session session = sessionFactory.getCurrentSession();
// Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(stu);
session.beginTransaction().commit();
session.close();
//session.close();因为我们使用的是getCurrentSession,所以就不必显示的关闭Session了
}
@AfterClass
public static void afterClass(){
sessionFactory.close();
}
}
Student.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.model"><!--package指明你映射的是哪一个package里面的类-->
<class name="Student" table="student">
<id name="id" column="id" >
<!-- id可以由generator来生成,而且generator可以有各种各样的具体的值,每个值都指定了不同生成方式 -->
<generator class="native"></generator>
</id>
<property name="name" />
<property name="age" />
</class>
</hibernate-mapping>