1.2 第一个Hibernate程序(MyEclipse)
1.2.1 Hibernate的执行流程
在Hibernate执行过程中通常会用到5个核心接口,分别为:Configuration接口、SessionFactory接口、Session接口、Transaction接口和Query接口。
下面是Hibernate的执行流程图:
1.2.2 实现第一个Hibernate程序
1. 下载Hibernate的开发环境并解压Hibernate
2. 创建一个Java项目Java,引入jar包
导入我们放进来的jar包
3. 创建表
CREATE DATABASE hibernatedemo;
USE hibernatedemo;
CREATE TABLE `user` (
`user_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '编号(主键)',
`user_name` varchar(32) NOT NULL COMMENT '姓名',
`user_password` varchar(32) DEFAULT NULL COMMENT '密码',
`user_phone` varchar(64) DEFAULT NULL COMMENT '电话',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
4. 创建实体类
package cn.corey;
/**
* 创建实体类
* @author Administrator
*
*/
public class Users {
private Long user_id;
private String user_name;
private String user_password;
private String user_phone;
public Long getUser_id() {
return user_id;
}
public void setUser_id(Long user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
public String getUser_phone() {
return user_phone;
}
public void setUser_phone(String user_phone) {
this.user_phone = user_phone;
}
}
5. 创建映射(★★★很重点★★★)
映射需要通过XML的配置文件来完成。
可以任意命名,但尽量统一命名规范(类名.hbm.xml)
在实体类的包下创建xml文件 (Users.hbm.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 建立类与表的映射 -->
<class name="cn.corey.Users" table="user">
<!-- 建立类中的属性与表的主键的对应 -->
<id name="user_id" column="user_id">
<generator class="native"/>
</id>
<!-- 建立类中的普通属性和表的字段的对应 -->
<property name="user_name" column="user_name"/>
<property name="user_password" column="user_password"/>
<property name="user_phone" column="user_phone"/>
</class>
</hibernate-mapping>
6. 创建一个Hibernate的核心配置文件(★★★很重点★★★)
Hibernate的核心配置文件的名称:hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 连接数据库的基本参数 -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernatedemo</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 配置hibernate方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 可选配置 -->
<!-- 打印sql语句 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql -->
<property name="hibernate.format_sql">true</property>
<!-- 配置要引入的映射文件 -->
<mapping resource="Users.hbm.xml"/>
</session-factory>
</hibernate-configuration>
注意一点,做完这两步,如果命名没有出错的话,应该是这个样子的:
7. 编写测试代码(★★★很重点★★★)
在编写测试代码之前呢,我们在这里在过一下Hibernate持久化的流程
// 1. 创建 Configuration对象,进行配置的装载、读取和解析。
// 2. 创建 SessionFactory对象,通过 Configuration创建该类实例,是产生 session的“工厂”。
// 3. 创建 Session对象,可以理解为 为数据库建立一个连接。
// 4. 开启一个事务,在 Java中定义一个事务操作的开始。
// 5. 进行持久化操作。(编写实现代码)
// 6. 结束、提交事务。
// 7. 关闭 Session类释放资源。
在上述的七个步骤中:
①~③在系统初始化时执行一次就可以了
以后每次执行持续化操作重复④~⑦就可以了
开始编码:
package cn.corey;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/**
* Hibernate的入门案例
* @author Administrator
*
*/
public class HibernateDemo1 {
public static void main(String[] args) {
// 1. 创建 Configuration对象,进行配置的装载、读取和解析。
Configuration configuration = new Configuration().configure();
// 2. 创建 SessionFactory对象,通过 Configuration创建该类实例,是产生 session的“工厂”。
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 3. 创建 Session对象,可以理解为 为数据库建立一个连接。
Session session = sessionFactory.openSession();
// 4. 开启一个事务,在 Java中定义一个事务操作的开始。
Transaction transaction = session.beginTransaction();
// 5. 进行持久化操作。(编写实现代码)
Users users = new Users();
users.setUser_name("张三");
users.setUser_password("123456");
session.save(users);
// 6. 结束、提交事务。
transaction.commit();
// 7. 关闭 Session类释放资源。
session.close();
}
}
8. 运行测试
好了,到这里我,我们的编程就结束了,接下来,运行测试类,进行测试
结果图:
MySQL:
程序运行成功,要实现的添加用户也实现了。