本文将介绍两个内容:
1、hibernate概述
2、第一个hibernate测试类
1、hibernate概述
我们知道hibernate 是一个框架,那框架是什么,其实就是一个软件的半成品
1.1 什么是hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。hibernate是一个持久层的orm框架
1.2 什么是ORM
ORM(Object Relational Mapping)对象关系映射框架采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。指的是将一个java中的对象与关系型数据库中的表建立一种映射关系,从而操作对象就可以操作数据库中的表。
1.3 为什么要学习 hibernate
- hibernate实现了对象关系映射框架,对jdbc访问数据库的代码做了轻量级封装,
- 简化了数据访问层的代码,减少了内存消耗,加快了运行效率,从而简化开发。
- 并且有良好的性能,支持多种关系型数据库;扩展性也很强,可以自行编码进行扩展。
2、第一个hibernate测试类
2.1 下载hibernate
1.点击上方下载链接进入如图,选择任意Version
2.选择版本后点击.zip进行下载
3.出现如下
4.指定下载目录
5.hibernacle 文件结构
- documentation--开发文档
- lib --开发包
- required --开发必须的依赖包
- optional --开发可选的依赖包
- project --提供的示例项目
- changelog.txt --所有Hibernate版本更新说明
- hibernate_logo.gif --Hibernate的logo
- gpl.txt --使用hibernate的授权说明
2.2 创建一个项目
1 新建项目
File-->New-->Java Project-->Create a Java Project-->name:Hibernate_day01
2 创建lib 用于存放jar包
右键项目--New--Folder--name:lib
拷入jar包
1.数据库驱动包
mysql-connector-java-5.1.7-bin.jar
2.Hibernate开发必须的jar包
在hibernate/lib/requied中的jar包全选,如图:

3.Hibernate日志记录的jar包
log4j-1.2.16.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.7.2.jar
4.将以上添加的jar包全部,Add to Build Path
2.3 创建客户关系表
创建客户表
CREATE TABLE hibernate_day01.`cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属行业',
`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
PRIMARY KEY (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2.4 创建实体类
1.在src下创建java Package--name:com.it.hibernate.demo1


Customer.java具体如下
public class Customer {//创建实体类 private Long cust_id; private String cust_name; private String cust_source; private String cust_industry; private String cust_level; private String cust_phone; private String cust_mobile; //对数据进行设置和获取方法 //右键-->Source-->Generate Getters and Setters public Long getCust_id() { return cust_id; } public void setCust_id(Long cust_id) { this.cust_id = cust_id; } public String getCust_name() { return cust_name; } public void setCust_name(String cust_name) { this.cust_name = cust_name; } public String getCust_source() { return cust_source; } public void setCust_source(String cust_source) { this.cust_source = cust_source; } public String getCust_industry() { return cust_industry; } public void setCust_industry(String cust_industry) { this.cust_industry = cust_industry; } public String getCust_level() { return cust_level; } public void setCust_level(String cust_level) { this.cust_level = cust_level; } public String getCust_phone() { return cust_phone; } public void setCust_phone(String cust_phone) { this.cust_phone = cust_phone; } public String getCust_mobile() { return cust_mobile; } public void setCust_mobile(String cust_mobile) { this.cust_mobile = cust_mobile; }
}
2.5 创建映射(终于涉及hibernate啦)
映射需要通过XML的配置文件来完成,这个配置文件可以任意命名,
不过要尽量统一命名规范【类名.hbm.xml】
在package com.it.hibernate.demo1中新建一个xml
右键package-->New-->xml-->name-->Customer.hbm.xml

打开以下目录 Referenced Libraries/hibernate-core/org.hibernate/Hibernate-mapping3.0.dtd
复制10~12行到Customer.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
Customer.hbm.xml完整如下
DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- 建立类与表的映射 -->
<class name="com.it.hibernate.demo1.Customer" table="cst_customer">
<!-- 建立类中的属性与表中的主键对应,否则当前配置会有报错 -->
<id name="cust_id" column="cust_id">
<!-- 用本地的主键生成策略 -->
<generator class="native"></generator>
</id>
<!-- 建立类中的普通属性和表的字段的对应 -->
<property name="cust_name" column="cust_name"></property>
<property name="cust_source" column="cust_source"></property>
<property name="cust_industry" column="cust_industry"></property>
<property name="cust_level" column="cust_level"></property>
<property name="cust_phone" column="cust_phone"></property>
<property name="cust_mobile" column="cust_mobile"></property>
</class>
2.6 创建hibernate核心配置文件
hibernate核心配置文件通常命名为:hibernate.cfg.xml
在package com.it.hibernate.demo1中新建一个xml
右键package-->New-->xml-->name-->hibernate.cfg.xml 放在src下
打开以下目录 Referenced Libraries/hibernate-core/org.hibernate/Hibernate-configuration3.0.dtd
复制10~12行到hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
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:///hibernate_day01</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">012345</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>
<!-- 设置字符编码集,防止传入数据库的中文出现乱码 -->
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>
<!-- 映射的路径 -->
<mapping resource="com/it/hibernate/demo1/Customer.hbm.xml"></mapping>
</session-factory>
2.7 编写测试类
在package com.it.hibernate.demo1中新建一个类
右键package-->New-->class-->name-->HibernateDemo1.java
HibernateDemo1.java完整如下
public class HibernateDemo1 {
@Test
//保存客户的案例
public void demo1() {
//1、加载hibernate核心配置文件
Configuration configuration = new Configuration().configure();
//2、创建一个SessionFactory对象:类似于jdbc的连接池
SessionFactory sessionFactory = configuration.buildSessionFactory();
//3、通过SessionFactory获取session对象:类似于jdbc中的Connection
Session session = sessionFactory.openSession();
//4、手动开启事物
Transaction transaction = session.beginTransaction();
//5、编写代码
Customer customer = new Customer();
customer.setCust_name("王小东");
System.out.println("");
session.save(customer);
//6、事物提交
transaction.commit();
//7、资源释放
session.close();
}
}
此时运行这个Test demo1就行了
编译器的Console出现

到这里hibernate的入门与第一个测试类就完成了