本帖最后由 我是楠楠 于 2018-6-7 15:16 编辑
【郑州校区】Hibernate框架介绍
1. Hibernate框架介绍1.1. 什么是hibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。 1.2. 什么是orm对象关系映射(英语:Object Relation Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。 对象-关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。 ORM模型的简单性简化了数据库查询过程。使用ORM查询工具,用户可以访问期望数据,而不必理解数据库的底层结构。 1.3. 为什么使用hibernate框架n Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 n Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现,它很大程度的简化了dao层编码工作 Hibernate是企业级开发中主流框架。映射的灵活性很出色。它支持很多关系型数据库 2. Hiberate框架学习目标掌握hibernate的基本配置 掌握hibernate常用API 掌握hibernate的关联映射 掌握hibernate的检索方式 掌握hibernate的优化方式 3. Hibernate快速入门3.1. Hibernate下载
下载后的目录结构 documentation目录:存放hibernate的相关文件与API lib目录:存放hibernate编译和运行所依赖的jar包,其中required子目录下包含了运行hibernate项目必须的jar包 project目录:存放hibernate各种相关的源代码与资源. 在lib/required目录中,包含的jar包 3.2. 创建数据库与表[AppleScript] 纯文本查看 复制代码 CREATE DATABASE hibernateTest;
USER hibernateTest;
CREATE TABLE t_customer(
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20),
address VARCHAR(50)
) 3.3. 创建实体类
3.4. 导入hibernate依赖jar包导入lib/required下所有的jar 导入数据库的驱动jar包 日志相关jar包 将hibernate/project/etc/log4j.properties文件导入到工程src下. 3.5. 创建映射文件映射配置文件主要是用于描述实体类与数据表之间的映射关系。 位置:要与实体类在同一个包下. 名称:类名.hbm.xml 约束:hibernate核心jar包下的org.hibernate包下hibernate-mapping-3.0.dtd文件中查找 3.6. 创建hibernate核心配置文件它主要是hibernate框架所使用的,它主要包含了连接数据库相关信息,hibernate相关配置等。 位置:在src下创建一个hibernate.cfg.xml 约束: 约束文件所在位置:hiberante核心jar包下的org.hibernate包下 在这个文件中如何配置? 可以参考 hibernate-release-5.0.7.Final\project\etc\hibernate.properties文件 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps52B8.tmp.jpg 3.7. 编写测试代码
3.8. Hibernate 工作原理总结hibernate工作原理: 1、通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件。 2、由hibernate.cfg.xml中的<mappingresource="xx/xx/xxx.hbm.xml"/>读取解析映射信息。 3、通过config.buildSessionFactory();//得到sessionFactory。 4、sessionFactory.openSession();//得到session。 5、session.beginTransaction();//开启事务。 6、persistent operate; 7、session.getTransaction().commit();//提交事务 8、关闭session; 9、关闭sessionFactory;
传智播客·黑马程序员郑州校区地址 河南省郑州市高新区长椿路11号大学科技园(西区)东门8号楼三层 联系电话0371-56061160 / 61/62 来校路线地铁一号线梧桐街站A口出 |