hibernate基础知识二

Hibernate学习笔记之基础知识 一、简介 1.1 概念   PO(Persistent):持久化对象 POJO(Plain Ordinary Java Object):普通的Java对象 OOA:面向对象分析 OOD:面向对象设计 OOP:面向对象编程 ORM(Object/Relation Mapping):即对象/关系数据库映射。   1.2 ORM   ORM可以理解成一种规范,它概述了这类框架的基本特... 阅读详情
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
1 Hibernate_day02
今日任务
案例一:使用 Hibernate 完成 CRM 客户管理中查询所有客户的操作
教学导航
教学目标
教学方法 案例驱动法
案例一: 使用 Hibernate 完成 CRM 客户管理中
查询所有客户的操作
1.1案例需求:
1.1.1 需求描述
CRM 系统中客户信息管理模块功能包括:
新增客户信息
客户信息查询
修改客户信息
删除客户信息
1.2相关知识点:
1.2.1 Hibernate 持久化类的编写规则
1.2.1.1 什么是持久化类:
Hibernate 是持久层的 ORM 映射框架, 专注于数据的持久化工作。 所谓的持久化, 就是将内存
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
中的数据永久存储到关系型数据库中。 那么知道了什么是持久化, 什么又是持久化类呢? 其实所谓
的持久化类指的是一个 Java 类与数据库表建立了映射关系, 那么这个类称为是持久化类。 其实你可
以简单的理解为持久化类就是一个 Java 类有了一个映射文件与数据库的表建立了关系。 那么我们在
编写持久化类的时候有哪些要求呢? 接下来我们来看一下:
1.2.1.2 持久化类的编写规则:
我们在编写持久化类的时候需要有以下几点需要注意:
持久化类需要提供无参数的构造方法。 因为在 Hibernate 的底层需要使用反射生成类的实
例。
持久化类的属性需要私有, 对私有的属性提供公有的 get set 方法。 因为在 Hibernate
层会将查询到的数据进行封装。
持久化类的属性要尽量使用包装类的类型。 因为包装类和基本数据类型的默认值不同, 包
装类的类型语义描述更清晰而基本数据类型不容易描述。 举个例子:
假设表中有一列员工工资, 如果使用 double 类型, 如果这个员工工资忘记录入到系统中, 系统会将默认值0
存入到数据库, 如果这个员工工资被扣完了, 也会向系统中存入 0.那么这个 0 就有了多重含义, 而如果使用包装类
类型就会避免以上情况, 如果使用 Double 类型, 忘记录入工资就会存入 null, 而这个员工工资被扣完了, 就会存
0, 不会产生歧义。
持久化类要有一个唯一标识 OID 与表的主键对应。 因为 Hibernate 中需要通过这个唯一标
OID区分在内存中是否是同一个持久化类。在Java中通过地址区分是否是同一个对象的,
在关系型数据库的表中是通过主键区分是否同一条记录。 那么 Hibernate 就是通过这个 OID
来进行区分的。 Hibernate 是不允许在内存中出现两个 OID 相同的持久化对象的。
持久化类尽量不要使用 final 进行修饰。 因为 Hibernate 中有延迟加载的机制, 这个机制中
会产生代理对象, Hibernate 产生代理对象使用的是字节码的增强技术完成的, 其实就是产
生了当前类的一个子类对象实现的。 如果使用了 final 修饰持久化类。 那么就不能产生子类,
从而就不会产生代理对象, 那么 Hibernate 的延迟加载策略( 是一种优化手段) 就会失效。.
持久化类我们已经可以正常编写了, 但是在持久化类中需要有一个唯一标识OID 与表的主键去
建立映射关系。 而且主键一般我们是不会让客户手动录入的, 一般我们是由程序生成主键。 那么
Hibernate 中也提供了相应的主键生成的方式, 那么我们来看下 Hibernate 的主键生成策略。
1.2.2 Hibernate 主键生成策略
1.2.2.1 主键的类型:
在讲解 Hibernate 的主键生成策略之前, 先来了解两个概念, 即自然主键和代理主键, 具体如下:
自然主键: 把具有业务含义的字段作为主键, 称之为自然主键。 例如在customer 表中, 如
果把 name 字段作为主键, 其前提条件必须是: 每一个客户的姓名不允许为null, 不允许客
户重名, 并且不允许修改客户姓名。 尽管这也是可行的, 但是不能满足不断变化的业务需
求, 一旦出现了允许客户重名的业务需求, 就必须修改数据模型, 重新定义表的主键, 这
给数据库的维护增加了难度。
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
代理主键: 把不具备业务含义的字段作为主键, 称之为代理主键。 该字段一般取名为“ID”,
通常为整数类型, 因为整数类型比字符串类型要节省更多的数据库空间。 在上面例子中,
显然更合理的方式是使用代理主键。
1.2.2.2 Hibernate的主键生成策略:
Hibernate 中, 提供了几个内置的主键生成策略, 其常用主键生成策略的名称和描述如下
主键生成策略
名称 描述
increment 用于 longshort、 或int 类型, 由 Hibernate 自动以递增的方式生
成唯一标识符, 每次增量为 1。 只有当没有其它进程向同一张表中插入
数据时才可以使用, 不能在集群环境下使用。 适用于代理主键。
identity 采用底层数据库本身提供的主键生成标识符, 条件是数据库支持
自动增长数据类型。 在 DB2 MySQL MS SQL Server Sybase
HypersonicSQL 数据库中可以使用该生成器, 该生成器要求在数据库中
把主键定义成为自增长类型。 适用于代理主键。
sequence Hibernate 根据底层数据库序列生成标识符。 条件是数据库支持序
列。 适用于代理主键。
native 根据底层数据库对自动生成表示符的能力来选择 identity
sequencehilo 三种生成器中的一种, 适合跨数据库平台开发。 适用于
代理主键。
uuid Hibernate 采用 128 位的 UUID 算法来生成标识符。 该算法能够在
网络环境中生成唯一的字符串标识符, 其 UUID 被编码为一个长度为
32 位的十六进制字符串。 这种策略并不流行, 因为字符串类型的主键
比整数类型的主键占用更多的数据库空间。 适用于代理主键。
assigned java 程序负责生成标识符,如果不指定 id 元素的 generator 属性,
则默认使用该主键生成策略。 适用于自然主键。
1.2.3 Hibernate 的持久化对象的三种状态
1.2.3.1 持久化对象三种状态的概述
了解了主键的生成策略之后, 我们可以进一步来了解持久化类了。 Hibernate 为了更好的来管理
持久化类, 特将持久化类分成了三种状态。 在 Hibernate 中持久化的对象可以划分为三种状态, 分别
是瞬时态、 持久态和脱管态, 一个持久化类的实例可能处于三种不同状态中的某一种, 三种状态的
详细介绍如下。
1、 瞬时态(transient
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
瞬时态也称为临时态或者自由态, 瞬时态的实例是由 new
印度国内航班延误分析预测数据集 本数据集提供2023年1月至2025年12月印度航班飞行记录,结构化为机器学习模型输入格式,适用于预测分析和航空性能研究。主要航空公司包括IndiGo(约40%)和印度航空(约18%),路由信息覆盖德里(DEL)和孟买(BOM)等高流量枢纽。包含航班日期、月份、星期、计划出发时间和分钟数等粒度时间数据,以及是否周末等工程特征。使用场景:训练机器学习算法预测航班延误、比较航空公司准点绩效趋势和延误频率、分析主要枢纽高峰出行时间和瓶颈路线以优化出行规划。 立即下载

相关推荐

电子学习资料实验指导书电子线路课程设计题

电子学习资料实验指导书电子线路课程设计题

Hibernate基础知识

Hibernate_day02总结 今日内容 l Hibernate持久化对象的状态 l Hibernate的一级缓存 l Hibernate操作持久化对象的方法 l Hibernate 关联关系映射   1.1 上次课内容回顾 Hibernate: * 第一天环境搭建,开发流程,配置和API * 第Hibernate持久化对象的状态,一级缓存,关联关系映射. * 第三

qq_34416191的博客 292

ShanYangClaw (DevMate)-python+agent-project

项目代码

Hibernate基础知识整理(

关联映射多对一(Employee - Department)一对多(Department - Employee)一对一(Person - IdCard)多对多(teachet - student)组件映射(User - Name)集合映射(set,list,map,bag)inverse和cascade(Employee - Department) create table De...

Xczlb6363的博客 163

玩耍Hibernate系列()--基础知识

Hibernate思维导图 Hibernate映射 关于hibernate的映射要说明的一点就是关于ID的访问权限,peroperty以及field的区别; 表的主键在内存中对应一个OID对象描述标识符,需要在配置文件中指定对象标识符的生成方式 assinged是自然主键的方式,这种策略需要用户指定ID才可以。 其他的方式比如sequence通过序列生成...

weixin_34041003的博客 97

Hibernate基础知识

hibernate是处于持久层的。是对jdbc的包装 POJO对象 轻量级框架的特点:没有侵入性。 Oracle TopLink,JDO,Apache OJB ,EJB(CMP); java是单继承的。 EJB(JPA持久化的规范) Weblogic ibaits——sql映射

Emily的博客 488

Hibernate基础知识总结

这里写自定义目录标题Hibernate基础总结整体结构Hibernate相关的API功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与...

weixin_42585359的博客 372

Hibernate旅程(Hibernate实例

上篇大概的介绍了Hibernate框架,本篇一个简单的hibernate例子来学习。 Hibernate配置 (1)   创建自己的java项目。 (2)   向自己的项目中添加Hibernate的相关的jar,我们可以创建自己的UserLibrary,这样就直接加入这个依赖包就可以了(如图2.1图2.2)。 图2.1 图2.2 需要添加上的jar包

Xinghf 8373

Hibernate 基础知识

Hibernate 基础知识

weixin_45428910的博客 907

参数估计Picard迭代在非线性常微分方程参数估计中的应用研究(Matlab代码实现)

内容概要:本文系统研究了Picard迭代法在非线性常微分方程参数估计中的应用,深入阐述了该方法的数学原理及其在参数辨识中的收敛性与稳定性优势。通过构建最小化误差的目标函数,并结合数值积分技术,采用迭代方式逐步逼近系统的真实参数值,有效解决了非线性动态系统中因缺乏解析解而难以进行精确建模的问题。文中提供了完整的Matlab代码实现,涵盖模型定义、迭代求解、参数更新与结果可视化等关键环节,增强了方法的可操作性与工程实用性。研究通过典型非线性系统案例验证了算法的有效性,展示了其在科学计算与工程建模中的良好适应性与推广潜力。; 适合人群:具备常微分方程理论、数值分析基础及Matlab编程能力,从事系统建模、参数辨识、动力学仿真等相关方向的研究生、科研人员和工程技术开发者。; 使用场景及目标:①解决实际工程中非线性微分方程模型的未知参数估计问题;②深入理解Picard迭代法在科学计算中的实现机制与数值特性;③为学术论文复现、科研项目开发或课程设计提供可运行、易调试的技术方案与代码参考。; 阅读建议:建议读者结合文中的数学推导与Matlab代码逐行分析,重点关注迭代流程、目标函数构造与数值积分的耦合实现,通过修改模型结构或噪声条件进行扩展实验,以深化对算法鲁棒性与适用边界的理解。配套资源可通过指定公众号和网盘链接获取,推荐同步学习以加速科研进程。

XYF.SHX

XYF.SHX

焊接变位机_1.rar

焊接变位机_1.rar

基于多尺度集成极限学习机回归(Matlab代码实现)

内容概要:本文详细介绍了一种基于多尺度集成极限学习机(Extreme Learning Machine, ELM)的回归方法,并提供了完整的Matlab代码实现。该方法通过构建多尺度特征表示与集成学习机制,有效提升了ELM在处理非线性、高维复杂数据时的预测精度与模型鲁棒性,特别适用于时间序列回归任务。文档不仅阐述了算法的核心原理与技术流程,还系统展示了其在风电功率预测等工程场景中的应用潜力。同时,文中附带了丰富的科研仿真案例集合,涵盖智能优化算法、深度学习、信号处理、电力系统调度等多个前沿方向,体现了多学科交叉融合的技术优势与实践价值。; 适合人群:具备一定Matlab编程能力,从事科学研究或工程应用的研究生、科研人员及工程技术开发者,尤其适合专注于机器学习、智能算法优化、新能源预测与电力系统建模等相关领域的专业人员。; 使用场景及目标:①用于风电、光伏、负荷等时间序列数据的高精度回归预测任务;②为科研工作者提供可复现的多尺度集成ELM模型代码框架,支持快速算法验证与次开发;③满足实际工程项目中对高效建模、实时预测与智能决策的技术需求。; 阅读建议:建议读者结合所提供的Matlab代码进行动手实践,深入理解多尺度特征构造与集成策略的设计思想,同时可参考文档中其他相关算法案例进行横向比较与综合应用,以提升整体科研创新能力。

精密钟表配件叉片插针组装机 -原创设计.rar

精密钟表配件叉片插针组装机 -原创设计.rar

精密制造基于桥式三坐标的深孔同轴度测量:半导体流体控制阀PTFE阀体形位公差定量检测方案

内容概要:本文针对高精密制造中深孔内部特征难以精确定量测量的技术瓶颈,提出了一套基于中图仪器Mars Classic 10128桥式三坐标测量机的解决方案,重点解决长径比大于5:1的PTFE四氟阀体深孔同轴度与圆柱度测量难题。通过采用自主研发的深孔加长测针组件与CP500S扫描测头,克服了传统接触式测针刚性不足和光学设备视场遮挡的问题,实现了对深孔内部形貌的连续扫描与三维拓扑建模,输出精度可达≤0.025mm,建立了可追溯、可量化的测量标准流程。; 适合人群:从事半导体流体控制阀、高精密PTFE阀体等零部件设计、制造与质量检测的工程技术人员及测试管理人员,具备一定几何公差与三坐标测量基础知识的专业人员; 使用场景及目标:①解决“影像仪测不到深孔内部”或“深孔长径比大于5怎么测”的实际工程问题;②实现对深孔同轴度、圆柱度等形位公差的定量评价,替代传统通止规定性判断;③为工艺优化、刀具补偿和质量追溯提供精准数据支持; 阅读建议:此资源作为技术应用指南,兼具设备选型参考与测量方法指导价值,建议结合实际检测案例对照操作,并联系中图仪器技术中心获取实测验证支持。

上一篇: hibernate基础知识一
下一篇: hibernate基础知识三
baoliantu
博客等级 码龄10年 1粉丝 17原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值