环境搭建准备:
1)、创建一个JAVA工程;
2)、导入Hibernate必须的jar包:hibernate-release\lib\required
3)、导入Mysql的jdbc驱动:
mysql-connector-java
一、创建Hibernate的配置文件;
1).在src下建立Hibernate.cfg.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Student为你的数据库名称 -->
<property name="connection.url">jdbc:mysql://localhost:3306/<!-- 你已有的数据库名 --></property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!-- 数据库连接设置 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- SQL方言 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 显示SQL语句 -->
<property name="show_sql">true</property>
<!-- 格式化输出SQL语句 -->
<property name="format_sql">true</property>
<!-- validate 加载hibernate时,验证创建数据库表结构 -->
<!-- create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。 -->
<!-- create-drop 加载hibernate时创建,退出是删除表结构 -->
<!-- update 加载hibernate自动更新数据库结构 -->
<property name="hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
以上是基础配置不建议缩减;
二、创建持久化类;
1).在src下创建一个java类,比如Students.java(持久化类遵循javabean规范)
javabean:
1.公有的类
2.提供共有的不带参数的默认的构造方法
3.属性私有
4.属性setter/getter封装
package com.hibernate;
import java.util.Date;
public class Students {
private Integer sid;
private String sname;
private String gender;
private Date birthday;
private String address;
public Integer getSid() {
return sid;
}
public void setSid(Integer sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Students(Integer sid, String sname, String gender, Date birthday,
String address) {
super();
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.birthday = birthday;
this.address = address;
}
public Students(){
}
@Override
public String toString() {
return "Students [sid=" + sid + ", sname=" + sname + ", gender="
+ gender + ", birthday=" + birthday + ", address=" + address
+ "]";
}
}
三、创建对象-关系映射文件;
1).在src下创建Student.hbm.xml文件;
它会自动将实体类生成一个映射文件,以及把每个属性作为对应的字段;
2).我们需要将这个映射文件关联到Hibernate.cfg.xml文件中;
<!-- hibernate与数据库的对象关系映射文件**.hbm.xml -->
<mapping resource="com/hibernate/Students.hbm.xml" />
四、使用Junit进行测试:
@Test测试方法
@Before:初始化方法
@After:释放资源
1).在src下创建一个Junit Test case文件,文件名为StudenTest。
package com.hibernate;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class StudentsTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Before
public void before(){
//1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和 对象关系映射信息
Configuration configuration = new Configuration().configure();
//2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象
ServiceRegistry serviceRegistry =
new ServiceRegistryBuilder().applySettings(configuration.getProperties())
.buildServiceRegistry();
//3).创建会话工厂对象
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
//4). 创建一个 Session 对象
session = sessionFactory.openSession();
//5). 开启事务
transaction = session.beginTransaction();
}
@Test
public void testSaveStudents() {
Students s = new Students(2, "j/wen", "男", new Date(), "呼市");
session.save(s);
}
@After
public void after(){
//6). 提交事务
transaction.commit();
//7). 关闭 Session
session.close();
//8). 关闭 SessionFactory 对象
sessionFactory.close();
}
}
以下是文件目录
代码已经过测试可以创建和添加;