Hibernate之初体验

简介: <p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px"> <span style="font-size:18px">在开始学Hibernate之前,一直就有人说:Hiberna

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低?

      如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。

      这难道是学习的最终目的吗?

      不是,绝对不是。我们需要了解这门技术的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领大家一起回顾一下Hibernate:


什么是Hibernate?


      Hibernate,翻译过来是冬眠的意思,正好现在已经进入秋季,世间万物开始准备冬眠了。其实对于对象来说就是持久化。

 

扫盲--------------------------------------------------------------------------------------------------------

      持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

 

持久化是将程序数据在持久状态和瞬时状态间转换的机制。
 

JDBC就是一种持久化机制。文件IO也是一种持久化机制。
 

日常持久化的方法:
1、将鲜肉冷藏,吃的时候再解冻的方法也是。
2、将水果做成罐头的方法也是。

结束----------------------------------------------------------------------------------------------------------

  

我们从三个角度理解一下Hibernate:

 

一、Hibernate是对JDBC进一步封装

       原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了Hibernate把JDBC封装了一下,我们不用操作数据,直接操作它就行了。
 

二、我们再从分层的角度来看

       我们知道非常典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。

 

三、Hibernate是开源的一个ORM(对象关系映射框架

      ORM,即Object-Relational Mapping,它的作用就是在关系型数据库和对象之间做了一个映射。从对象(Object)映射到关系(Relation),再从关系映射到对象。这样,我们在操作数据库的时候,不需要再去和复杂SQL打交道,只要像操作对象一样操作它就可以了(把关系数据库的字段在内存中映射成对象的属性)。

 

Hibernate的核心:

 

                 

 

     从上图中,我们可以看出Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。Hibernate的所有内容都在这了。那我们从上到下简单的认识一下,每个接口进行一句话总结。

1、Configuration接口:负责配置并启动Hibernate

2、SessionFactory接口:负责初始化Hibernate

3、Session接口:负责持久化对象的CRUD操作

4、Transaction接口:负责事务

5、Query接口和Criteria接口:负责执行各种数据库查询

 

注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了。

 

Hibernate的优/缺点:

 

优点:

1、更加对象化

      以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。

2、移植性
      因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。

3、Hibernate是一个没有侵入性的框架,没有侵入性的框架我们称为轻量级框架。

      对比Struts的Action和ActionForm,都需要继承,离不开Struts。Hibernate不需要继承任何类,不需要实现任何接口。这样的对象叫POJO对象。

4、Hibernate代码测试方便。

5、提高效率,提高生产力。

 

缺点:

1、使用数据库特性的语句,将很难调优

2、对大批量数据更新存在问题

3、系统中存在大量的攻击查询功能

 
总结:

 

      Hibernate可以使我们采用对象化的思维操作关系型数据库。

项目实例:

最后附上以前写的一个员工管理系统,采用ssh_mybatis框架

实现效果

ABCABCABCABC


链接地址:https://github.com/xiangzhihong/HrManage


目录
相关文章
|
分布式计算 Hadoop 大数据
【大数据开发技术】实验04-HDFS文件创建与写入
【大数据开发技术】实验04-HDFS文件创建与写入
681 0
|
存储 SQL 人工智能
CCCF专栏 | 加密数据库技术:前沿与展望
本文将从数据安全防护的重大战略需求出发,聚焦数据安全搜索、加密数据库技术等前沿领域,深入探讨加密数据库的发展现状,揭示其设计过程中存在的安全性和性能方面的挑战,并提出未来关于加密数据库建设的一些愿景。
CCCF专栏 | 加密数据库技术:前沿与展望
|
机器学习/深度学习 人工智能 算法
人工智能在医疗诊断中的应用与挑战
本文探讨了人工智能(AI)在医疗诊断领域的应用及其面临的挑战。随着技术的不断进步,AI已经在医学影像分析、疾病预测和个性化治疗等方面展现出巨大潜力。然而,数据隐私、算法透明度以及临床整合等问题仍然是亟待解决的关键问题。本文旨在通过分析当前AI技术在医疗诊断中的具体应用案例,探讨其带来的优势和潜在风险,并提出相应的解决策略,以期为未来AI在医疗领域的深入应用提供参考。
377 3
|
11月前
|
人工智能 供应链 数据可视化
跨境电商供应链优化趋势:从智能库存到绿色物流
高效供应链管理是行业发展的关键,涉及原材料采购、生产制造、库存管理、跨境物流和终端交付等环节。通过数据驱动决策、多供应商合作、灵活物流策略、清关合规和技术赋能,可以优化供应链,提升运营效率。
1113 7
跨境电商供应链优化趋势:从智能库存到绿色物流
|
Cloud Native 关系型数据库 分布式数据库
|
Kubernetes Cloud Native 开发者
OpenKruise:Kubernetes的超级插件,一键解锁容器运行时操作的超能力!
【8月更文挑战第8天】在云原生领域,Kubernetes虽已成为容器编排的标准,但仍有限制,比如批量操作不便和高级调度功能缺失。OpenKruise是一款增强工具,提供CloneSet、Advanced StatefulSet等功能,既保持Kubernetes API特性又增加了扩展性,使Pod管理更灵活。可通过Helm安装OpenKruise,并使用CloneSet轻松实现批量部署。这类增强工具让开发者能更高效地突破原生Kubernetes的限制,预计未来将更加受到欢迎。
321 48
|
监控 供应链 安全
云计算环境下的等保测评
云计算环境以其灵活、高效和可扩展性,成为现代企业信息化基础设施的重要组成部分。然而,云环境的复杂性和动态性也给信息安全带来了新的挑战,尤其是等级保护测评(简称“等保测评”)在云环境下变得更加复杂和重要。
264 0
|
监控 安全 网络安全
网络安全的基本原则与策略
【8月更文挑战第19天】网络安全的基本原则与策略是保障网络系统安全性的重要基石。通过遵循网络空间主权原则、网络安全与信息化发展并重原则以及共同治理原则等基本原则,制定并实施科学合理的安全策略和实施措施,可以有效提升网络系统的安全性、完整性、可用性和保密性。同时,随着网络技术的不断发展和变化,我们需要持续关注网络安全的新趋势和新挑战,不断调整和完善安全策略和实施措施,确保网络系统的持续安全和稳定运行。
|
编解码 测试技术 开发工具
绘梦有形,快手开源「可图 Kolors」,等你来玩
近期,快手开源了名为Kolors(可图)的文本到图像生成模型,该模型具有对英语和汉语的深刻理解,并能够生成高质量、逼真的图像。
|
弹性计算 人工智能 运维
60分钟深度测评阿里云基于大模型构建的操作系统智能助手
OS Copilot 概要 OS Copilot 是阿里巴巴云针对Linux操作系统开发的智能助手,集成在Alibaba Cloud Linux中,利用大模型技术提供自然语言问答、命令行辅助、阿里云CLI调用和系统运维功能。它尤其适合新手,直观的交互方式提升效率。此外,OS Copilot支持在操作系统内直接管理阿里云资源,简化运维任务。目前,该助手仅在特定版本的Alibaba Cloud Linux上可用。体验者可以通过提供的链接和指南进行实操,体验其功能,如命令行的自然语言交互和环境变量配置。OS Copilot在提高用户体验和工作流集成方面的创新,预示着未来AI在操作系统中的广泛应用。