准备工作
环境:Eclipse;MySQL
导入Hibernate库(jar包 ;MySQL驱动包 ;log4j日志包。
Hibernate库下载网站: http://sourceforge.net/projects/hibernate/files/
创建工程
File->new->Java Project
导包
右键项目->Properties
选择Add Library…
选择User Library
选择User Libraries…->new
选择Add External JARs…
添加hibernate的jar包
再添加数据库驱动jar包
添加日志jar包
添加配置文件
在hibernate-release-5.2.10.Final\project\etc下找到log4j.properties将其拷贝到src下
在hibernate-release-5.2.10.Final\project\etc下找到hibernate.cfg.xml将其拷贝到src下
打开hibernate.properties,找到如下代码,此处有相应的配置信息
进行方言、连接数据库驱动、统一资源定位器、的配置
使用MySQLInnoDBDialect可以支持事务
Windows->Show View->Data Management->Data Source Explorer
右键Database Connections->new->MySQL
选择加号->JAR List->Add JAR,添加数据库驱动的jar包
创建数据库
Test Connection测试URL是否正确
完成hibernate.cfg.xml中的配置
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hellohibernate</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<property name="show_sql">true</property>
<mapping resource="cn/hrbust/pojo/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
添加实体类和映射文件
src下创建User类
package cn.hrbust.pojo;
import java.sql.Date;
public class User {
private int id;
private String name;
private String gender;
int age;
Date birthday;
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 String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
}
创建数据库T_USER表
在hibernate-release-5.2.10.Final文件夹中搜索Simple.hbm.xml文件,将其拷贝到/helloHibernate/src/目录下并改名为User.hbm.xml,修改完的代码如下。
<hibernate-mapping>
<class name="cn.hrbust.pojo.User" table="t_user">
<id name="id" column="id">
<generator class="native"/> <!-- 根据底层数据库自动选择 -->
</id>
<property name="name"/>
<property name="gender"/>
<property name="age"/>
<property name="birthday"/>
</class>
</hibernate-mapping>
回到hibernate.cfg.xml中修改代码 < mapping resource=“cn/hrbust/pojo/User.hbm.xml”/>
使用Hibernate的7个步骤
1.创建Configuration对象,负责读取hibernate.cfg.xml
2.创建SessionFactory,负责ORM框架的持久化操作
3.创建Session
4.开始一个事务
5.持久化操作save/update/delete/get
6.提交事务
7.关闭Session
具体操作如下:
src下创建包cn.hrbust.dao,类manageUser,类中进行保存的操作
package cn.hrbust.dao;
import java.sql.Date;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.hrbust.pojo.User;
public class manageUser {
public static void main(String[] args) {
Configuration cfg = null;
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
//创建user
User u = new User();
u.setName("赵四");
u.setGender("男");
u.setAge(21);
u.setBirthday(Date.valueOf("2000-1-1"));
try {
//创建Configuration对象
cfg = new Configuration().configure();
//创建Session工厂
sf = cfg.buildSessionFactory();
//创建Session
session = sf.openSession();
//创建事务
ts = session.beginTransaction();
//持久化操作:session保存对象
session.save(u);
//提交事务
ts.commit();
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(ts != null) {
ts.rollback();
}
}finally {
//关闭session
session.close();
sf.close();
}
}
}
数据库查表
添加成功