Hibernate是java领域的一款开源的ORM框架技术

Hibernate对JDBC进行了非常轻量级的对象封装

准备前的工作

导入Hibernate必须的jar包​​ hibernate-core.zip ​

导入MySQL的JDBC驱动 ​​mysql-connector-java-5.1.7-bin.jar​

导入Junit4的jar包 ​​Junit-4.10.jar​


我们可以把上面的jar包 添加自定义用户类库,方便每次导入jar包。添加后最好就不要移动这些jar包的位置了哦  不然你就要重新修改用户类库了

基本步骤

  • 在MyEclipse Datebase Explorer 创建数据库连接
  • 创建hibernate的配置文件
  • 根据数据库表自动生成持久化类和对象关系映射文件
  • 使用junit通过Hibernate API编写访问数据库的代码


在MyEclipse Datebase Explorer 创建数据库连接

点击myeclipse的右上角图标open Perspective  选择MyEclipse Database Explorer

在DB Browser界面鼠标右键new 新建数据库驱动

使用myeclipse编写Hibernate小栗子_ORM框架

我用的是mysql数据库,使用其它数据库请相应修改,把数据库帐号密码 驱动添加后点击finsh即可。

创建hibernate的配置文件

点击你创建的java项目 右键 MyEclipse->Add Hibernate Capabilities 

使用myeclipse编写Hibernate小栗子_jdbc_02

导入自定义类库的三个jar包 next

使用myeclipse编写Hibernate小栗子_hibernate_03

这里就是生成的hibernate配置文件位置和名称  点击next

使用myeclipse编写Hibernate小栗子_ORM框架_04

选择我们刚刚在MyEclipse Database Explorer新建的数据库  点击next

使用myeclipse编写Hibernate小栗子_jdbc_05

create SessionFactory class是否创建SessionFactory类我取消勾选了  因为我在下面自己实例化了

点击finish即成功创建了hibernate的配置文件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">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.url">jdbc:mysql://localhost:3306/susu</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="myeclipse.connection.profile">MySQLDriver</property>

</session-factory>

</hibernate-configuration>


根据数据库表自动生成持久化类和对象关系映射文件

点击myeclipse的右上角图标open Perspective  选择MyEclipse Database Explorer

在DB Browser界面打开我们创键的数据库连接

选中我们需要生成持久化类的表,右键选择Hibernate Reverse Engineering 

 

使用myeclipse编写Hibernate小栗子_ORM框架_06

java src folder    持久化类生成的项目位置

java package     持久化类的包名

点击next

使用myeclipse编写Hibernate小栗子_junit_07

id generator  选择native  点击finish

在你选择的项目里即成功生成了持久化类和对象关系映射文件

持久化类

package com.susu.entity;

import java.util.Date;

/**
* Students entity. @author MyEclipse Persistence Tools
*/

public class Students implements java.io.Serializable {

// Fields

private Integer id;
private String name;
private String gender;
private Date date;
private String address;

// Constructors

/** default constructor */
public Students() {
}

/** full constructor */
public Students(String name, String gender, Date date, String address) {
this.name = name;
this.gender = gender;
this.date = date;
this.address = address;
}

// Property accessors

public Integer getId() {
return this.id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}

public String getGender() {
return this.gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public Date getDate() {
return this.date;
}

public void setDate(Date date) {
this.date = date;
}

public String getAddress() {
return this.address;
}

public void setAddress(String address) {
this.address = address;
}

}


对象关系映射文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="com.susu.entity.Students" table="students" catalog="susu">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" />
</property>
<property name="gender" type="java.lang.String">
<column name="gender" length="2" />
</property>
<property name="date" type="java.util.Date">
<column name="date" length="0" />
</property>
<property name="address" type="java.lang.String">
<column name="address" length="30" />
</property>
</class>
</hibernate-mapping>



这个时候会在hibernate.cfg.xml 新增一个映射  指向刚刚生成的关系映射文件

<mapping resource="com/susu/entity/Students.hbm.xml" />


通常我们还会加上

<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>


在控制台输出sql 语句并对Sql语句进行排版

具体作用请看这篇文章​​点击打开链接​

使用junit通过Hibernate API编写访问数据库的代码

import java.util.Date;
import java.util.Properties;

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;

import com.susu.entity.Students;

public class StudentsTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;

@Before
public void init() {
// 创建配置对象
Configuration config = new Configuration().configure();
// 创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(config.getProperties()).buildServiceRegistry();
// 创建会话工厂对象
sessionFactory = config.buildSessionFactory(serviceRegistry);
// 会话对象
session = sessionFactory.openSession();
// 开启事务
transaction = session.beginTransaction();
}

@Test
public void testSaveStudents() {
Students stu=new Students("张三", "男", new Date(), "河南省信阳市");
session.save(stu);
}

@After
public void destroy() {
transaction.commit();// 提交事务
session.close();
sessionFactory.close();
}
}


运行结果:

使用myeclipse编写Hibernate小栗子_myeclipse创建hibernate_08

打开mysql数据库会发现我们成功在Students表中插入了一条数据。