一、加入相关jar包
maven方式: 加入hibernate-core依赖即可
二、在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> <!-- 配置连接数据库的基本信息 --> <property name="connection.username">root</property> <property name="connection.password">root</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///hibernate</property> <!-- 配置 hibernate 的基本信息 --> <!-- hibernate 所使用的数据库方言 --> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- 执行操作时是否在控制台打印 SQL --> <property name="show_sql">true</property> <!-- 是否对 SQL 进行格式化 --> <property name="format_sql">true</property> <!-- 指定自动生成数据表的策略 --> <property name="hbm2ddl.auto">create</property> <!-- 指定关联的 .hbm.xml 文件 --> <mapping resource="com/wr/hibernate/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration>
三、加入实体类及其配置文件
package com.wr.hibernate.entity;
import java.sql.Date;
public class User {
private int id;
private String name;
private int age;
private Date birth;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
}
<?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.wr.hibernate.entity"> <class name="User" table="user" dynamic-insert="true"> <id name="id" type="java.lang.Integer"> <column name="id" /> <!-- 指定主键的生成方式, native: 使用数据库本地方式 --> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" /> </property> <property name="age" type="java.lang.Integer"> <column name="age" /> </property> <property name="birth" type="java.sql.Date"> <column name="birth" /> </property> </class> </hibernate-mapping>
四、测试
package com.wr.hibernate.test;
import java.util.Calendar;
import java.sql.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.boot.registry.internal.StandardServiceRegistryImpl;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import com.wr.hibernate.entity.User;
public class TestHelloWorld {
@Test
public void before() {
// 1.读取hibernate配置
Configuration cfg = new Configuration().configure();
// 2.创建sessionfactory
StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
.applySettings(cfg.getProperties());
StandardServiceRegistryImpl registry = (StandardServiceRegistryImpl) builder.build();
SessionFactory sessionFactory = cfg.buildSessionFactory(registry);
// 3.创建session
Session session = sessionFactory.openSession();
// 4.开启事务
Transaction tx = session.beginTransaction();
// 5.执行操作
User user = new User();
user.setAge(26);
user.setName("WangRui");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 1990);
calendar.set(Calendar.MONTH, 10);
calendar.set(Calendar.DATE, 12);
user.setBirth(new Date(calendar.getTimeInMillis()));
session.save(user);
//6.提交事务
tx.commit();
// 7.关闭seesion
session.close();
}
}