第一章 对象持久化与Hibernate

简介: <h2><span style="font-size:24px">1.1 解耦合</span><br><span style="font-weight:normal">1.1.1 应用层解耦合--应用逻辑(service)和数据逻辑(dao)分离</span><br><span style="font-weight:normal">1.1.2 资源层解耦合--逻辑结构和物理结构分离</s

1.1 解耦合
1.1.1 应用层解耦合--应用逻辑(service)和数据逻辑(dao)分离
1.1.2 资源层解耦合--逻辑结构和物理结构分离


1.2 DAO模式
1.2.1 DAO对业务层提供数据抽象层接口
数据存储逻辑分离
数据访问底层实现的分离
资源管理和调度的分离
数据抽象


1.3 ORM Object Relactional Mapper 对象--关系型数据映射组件
       ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。本质上就是将数据从一种形式转换到另外一种形式。
 
       分层后,上层不需要知道下层是如何做了。
       分层后,不可以循环依赖,一般是单向依赖。


1.4 持久化实现类型(理解)
混杂模式:业务代码与sql语句写在一起
Data Class: 数据操作写在一个类中,还是需要大量的sql语句
基于持久化框架:如Hibernate,不需要sql语句,但可以使用sql


1.5 持久化框架介绍
Hibernate
        Apache OJB
        JDO(是SUN提出的一套标准—Java数据对象)
        Toplink(Orocle公司的)
        EJB(2.0X中有CMP;3.0X提出了一套“Java持久化API”---JPA)
        IBatis(非常的轻量级,对JDBC做了一个非常非常轻量级的包装,严格说不是O/R映射框架,而是基于SQL的映射(提供了一套配置文件,把SQL语句配置到文件中,再配置一个对象进去,只要访问配置文件时,就可得到对象))
       JAP(是SUN公司的一套标准),意愿统一天下


1.6 Hibernate做什么:
就是将对象模型(实体类)的东西存入关系模型中,
实体中类对应关系型库中的一个表,
实体类中的一个属性会对应关系型数据库表中的一个列
实体类的一个实例会对应关系型数据库表中的一条记录。
%%将对象数据保存到数据库、将数据库数据读入到对象中%%


1.7 Hibernate存在的原因
解决阻抗不匹配的问题;
目前不存在完整的面向对象的数据库
JDBC操作数据库很繁琐
SQL语句编写并不是面向对象
可以在对象和关系表之间建立关联来简化编程
O/R Mapping简化编程
O/R Mapping跨越数据库平台
hibernate_0200_OR_Mapping_Simulation


1.8 Hibernate的优缺点:
       不需要编写的SQL语句(不需要编辑JDBC),只需要操作相应的对象就可以了,就可以能够存储、更新、删除、加载对象,可以提高生产效率;
       因为使用Hibernate只需要操作对象就可以了,所以我们的开发更对象化了;
       使用Hibernate,移植性好(只要使用Hibernate标准开发,更换数据库时,只需要配置相应的配置文件就可以了,不需要做其它任务的操作);
        Hibernate实现了透明持久化:当保存一个对象时,这个对象不需要继承Hibernate中的任何类、实现任何接口,只是个纯粹的单纯对象—称为POJO对象(最纯粹的对象—这个对象没有继承第三方框架的任何类和实现它的任何接口)
        Hibernate是一个没有侵入性的框架
        Hibernate代码测试方便。


1.9 Hibernate使用范围:
       针对某一个对象,简单的将它加载、编辑、修改,且修改只是对单个对象(而不是批量的进行修改),这种情况比较适用;
       对象之间有着很清晰的关系(例:多个用户属于一个组(多对一)、一个组有多个用户(一对多));
       聚集性操作:批量性添加、修改时,不适合使用Hibernate(O/映射框架都不适合使用);
       要求使用数据库中特定的功能时不适合使用,因为Hibernate不使用SQL语句;

目录
相关文章
|
3月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
46 1
|
3月前
|
Java 数据库连接 数据库
从零到精通:揭秘 Hibernate 构建持久层服务的全过程,你离数据持久化大师还有多远?
【8月更文挑战第31天】本文详细介绍了如何从零开始使用 Hibernate 构建一个持久层服务。首先,通过在 Maven 项目中添加必要的依赖,确保项目具备使用 Hibernate 的条件。接着,配置 `hibernate.cfg.xml` 文件以连接 MySQL 数据库,并设置了基本属性。然后定义了一个简单的 `User` 实体类及其映射关系。此外,还创建了一个 `HibernateUtil` 工具类来管理 `SessionFactory`。
38 0
|
3月前
|
Java 数据库连接 微服务
揭秘微服务架构下的数据魔方:Hibernate如何玩转分布式持久化,实现秒级响应的秘密武器?
【8月更文挑战第31天】微服务架构通过将系统拆分成独立服务,提升了可维护性和扩展性,但也带来了数据一致性和事务管理等挑战。Hibernate 作为强大的 ORM 工具,在微服务中发挥关键作用,通过二级缓存和分布式事务支持,简化了对象关系映射,并提供了有效的持久化策略。其二级缓存机制减少数据库访问,提升性能;支持 JTA 保证跨服务事务一致性;乐观锁机制解决并发数据冲突。合理配置 Hibernate 可助力构建高效稳定的分布式系统。
64 0
|
3月前
|
Java 数据库连接 数据库
|
3月前
|
Java 数据库连接 数据库
|
5月前
|
缓存 Java 数据库连接
解析Hibernate与JPA:Java对象的数据库化之旅
【6月更文挑战第25天】在Java企业开发中,Hibernate和JPA提供优雅的数据持久化方案。Hibernate是JPA规范的强大ORM实现,简化对象与数据库映射。配置环境后,通过@Entity注解定义实体类映射表,如`User`类映射&quot;users&quot;表。利用JPA的EntityManager执行查询和更新,如JPQL查询及对象更新。事务管理和性能优化是关键,确保数据完整性和应用性能。本文揭示了Hibernate与JPA的最佳实践,助开发者从容应对数据持久化。
44 0
|
5月前
|
存储 Java 数据库连接
深入探索Hibernate与JPA:Java对象与数据库表的桥梁
【6月更文挑战第25天】Java ORM如Hibernate和JPA简化了数据库交互。在电商系统案例中,JPA注解如`@Entity`、`@Table`、`@Id`定义了对象-表映射。Hibernate利用这些定义实现持久化,如`Session.save()`保存用户对象至数据库,降低了复杂性并提升了开发效率。
47 0
|
6月前
|
SQL Java 数据库连接
使用Hibernate进行数据库持久化操作
【4月更文挑战第15天】Hibernate 是一款开源 ORM 框架,简化数据库操作,通过映射将 Java 对象与表交互。核心接口包括 SessionFactory、Session、Transaction、Query 和 Criteria。使用 Hibernate 需添加依赖,配置 hibernate.cfg.xml 文件,设置数据库信息,并创建实体类及映射文件。
64 0
|
6月前
|
SQL Java 关系型数据库
Hibernate - 对象关系映射文件(*.hbm.xml)详解
Hibernate - 对象关系映射文件(*.hbm.xml)详解
253 1