目录
Hibernate概述
ORM
-
全称:
- Object Relational Mapping (对象 关系 映射)
-
概念说明:
- 对象是指面向对象思想中的对象,在java编程语言中就是指java对象
- 关系是指数据关系模型,即关系数据库中的数据库结构
- 映射是指实现实体对象和数据关系模型之间的相互转换
-
ORM技术:
- ORM 技术在实体类对象和数据库表之间提供了一条桥梁,不需要和SQL语句打交道就可以通过操作实体对象来间接操作数据库。
-
面向对象概念和面向关系概念的对应关系
面向对象概念 面向关系概念 类 表 属性 字段 对象 记录
Hibernate
-
Hibernate属于什么?
- 在分层体系结构中Hibernate位于持久层,是完成对象持久化的持久层框架
- Hibernate是连接Java应用程序和关系型数据库的框架,是一种自动ORM框架
- JDBC的轻量级封装框架。
-
Hibernate做了什么?
- 能够建立对象模型和关系数据模型之间的映射
- 自动完成对象的持久化
- 封装了JDBC的API
-
Hibernate给我们带来了什么?(优点)?
- Hibernate实现了ORM,使Java程序员可以方便的运用面向对象的编程思想来操纵关系型数据库;
- Hibernate是对JDBC的封装,增强了代码的重用性,简化了代码,提高了编程效率;
- Hibernate是对JDBC的轻量级封装,必要时Java程序员可以绕过Hibernate直接访问JDBC API;
- Hibernate不仅可以应用在独立的Java程序中,还可以应用在Java Web项目中,可以和多种Web服务器集成,并支持多种数据库平台。
-
编写一个简单Hibernate程序的流程
- 安装Eclipse、mysql;
- 下载Hibernate,并解压缩(去下载Hibernate);
- 使用Eclipse创建新的项目;
- 引入Mysql数据库驱动包;
- 导入Hibernate所需的jar包(Hibernate目录下的lib / required);
- 编写Hibernate核心配置文件(后面作详细说明);
- 创建Java持久化类XXX.java(类似javaBean);
- 编写持久化类的映射配置文件XXX.hbm.xml;
- 使用Hibernate API 完成对象的持久化(即向数据库同步数据)。
◎ 核心配置文件在默认情况下放置在src目录下
◎ Hibernate的核心配置文件有两种形式:
- hibernate.properties (键=值方式)
- hibernate.cfg.xml
◎ 这里只对较复杂的hibernate.cfg.xml进行简单了解
xml声明 标签:
<?xml version="1.0" encoding="UTF-8"?>
xml文档类型定义 标签:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
~ 备注:该标签可以在 hibernate-configuration-3.0.dtd文件中找到,该文件可在以下两个目录中找到:
1. hibernate解压包:hibernate-release-5.2.17.Final\project\hibernate-core\src\main\resources\org\hibernate\hibernate-configuration-3.0.dtd
2. hibernate的一个jar包:hibernate-core-5.2.10.Final.jar/org/hibernate/hibernate-configuration-3.0.dtd
<> 根元素 标签
<hibernate-configuration></hibernate-configuration>
<> 根元素下<session-factory>的常用配置
<?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://localhost:3306/MyDB</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123456</property>
<!-- 可选配置: -->
<property name="hibernate.dialect">
org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<!-- 映射文件的配置: -->
<mapping resource="entity/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>