1.概述:作为一个优秀的持久层,轻量级框架,Hibernate充分体现了ORM的设计理念,提供了高效的对象到关系型数据库的持久层服务。它将持久层服务从软件业务层中完全抽取出来,让业务逻辑的处理更加简单,更加有利于高效地开发与维护。
HIbernate的优点:
(1) Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码;
(2)Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作;
(3) Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色。它支持很多关系型数据库,从一对一到多对多的各种复杂关系
2.首先,Hibernate通过ORM原理发展而来,这里需要先理解ORM原理。
ORM是对象到关系的映射,它的作用是在关系数据库和对象之间做一个自动映射,将数据库中的数据表结构映射成为对象,也就是持久类;
——O:面向对象的Object(Javabean)
——R:关系数据库(表结构)
——M:映射Mapping(XML的配置文件)
Hibernate通过持久化类(.java),映射文件(.hbm.xml)和配置文件(*.cfg.xml)操作关系型数据库,使开发人员不必再与复杂的SQL语句打交道。
3.接下来,进行Hibernate的环境配置。
(1)首先,便是下载Hibernate所需的环境jar包;(此处给了网盘链接,如果失效请留言评论,我会及时更新)网盘链接:链接:https://pan.baidu.com/s/1Uexfs2UjsDUzM6n99SxE3Q 密码:qe07
jar包主要包括以下三种:
* MySQL的驱动jar包(mysql-connector-java-5.1.38.jar)
* Hibernate开发需要的jar包(hibernate-release-5.0.7.Final/lib/required/所有jar包)
* 日志jar包(jar包/log4j/所有jar包)
解压后将jar右键复制到WEB-INF下的lib文件夹下;
(2)此处为了更好理解后面的配置文件和映射文件如何写,先编写一个简单的JavaBean类如下:
package com.user;
public class user {
private Long id;
private String username;
private String password;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
(3)数据库建表如下:
(4)在JavaBean所在的包下创建映射的配置文件, 默认的命名规则为:实体类名.hbm.xml;然后,在xml配置文件中引入约束(引入的是hibernate3.0的dtd约束,不要引入4的约束)
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
编写映射文件
<?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="com.user.user" table="hibernate">
<!-- 第一个先配id -->
<id name="id" column="id">
<!-- 设置主键生成策略 -->
<generator class="native"></generator>
</id>
<!-- 配置其他的属性 -->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
</class>
</hibernate-mapping>
(5)编写Hibernate核心的配置文件;在src目录下,创建名称为hibernate.cfg.xml的配置文件,在XML中引入DTD约束
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
另外, 必须配置的4大参数
#hibernate.connection.driver_class com.mysql.jdbc.Driver
#hibernate.connection.url jdbc:mysql:///test
#hibernate.connection.username gavin
#hibernate.connection.password
数据库的方言(必须配置的)
#hibernate.dialect org.hibernate.dialect.MySQLDialect
可选的配置
#hibernate.show_sql true
#hibernate.format_sql true
#hibernate.hbm2ddl.auto update
总体的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:///test(数据库名)</property>
<property name="hibernate.connection.username">root(用户名)</property>
<property name="hibernate.connection.password">root(密码)</property>
<!-- 配置数据库的方言 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 在控制台打印sql语句 -->
<property name="show_sql">true</property>
<!-- 需要引入映射的配置文件 -->
<mapping resource="com/user/user.hbm.xml"/>
</session-factory>
</hibernate-configuration>
至此,Hibernate框架项目配置就完成啦,就下来就是Hibernate代码的编写啦!!!