首页 > 其他分享 >Hibernate-ORM的由来

Hibernate-ORM的由来

时间:2023-02-05 17:01:38浏览次数:37  
标签:Hibernate Java 对象 建模 关联 面向对象 关系数据库 ORM

通常我们使用Java面向对象技术来实现应用程序的开发,而应用程序需要的相关数据我们使用关系型数据库来保存。面向对象技术主要是通过类、属性、关联、继承等手段进行建模;数据库主要通过表、字段、索引、视图等方式进行建模。

面向对象与关系数据库建模主要存在如下的差异:

一、建模的粒度

关系数据库建模只能使用表和字段两个维度;Java提供的数据类型包括基本数据类型、枚举、集合、泛型,而且我们可以很方面的扩展数据类型,类型可以包含其他类型的实例。

二、继承的表达

关系数据库不支持继承;Java可以体现类的继承关系,特别是类与对象之间可以体现多态。

三、同一性

关系数据库通过主键来体现记录的同一性;Java的对象包括同一性和等同性,同一性指两个对象引用同一个对象,等同性则指两个对象的值相同。

四、对象关联的表达

关系数据库通过外键关联或连接表来表达关联;Java使用对象引用或对象引用的集合来体现对象的关联关系,同时引用具有方向性。

五、导航方式

关系数据库通过表连接进行导航;Java通过对象的属性进行导航。

ORM主要是解决面向对象与关系数据库如上的差异,并提供如下的建模特性:

  1. 标识符的建模
  2. 可嵌入类型的建模
  3. 关联关系的建模
  4. 值类型集合的建模
  5. 实体集合的建模
  6. 继承的建模

标签:Hibernate,Java,对象,建模,关联,面向对象,关系数据库,ORM
From: https://blog.51cto.com/u_15954844/6038308

相关文章

  • How to Avoid Trivial Solutions in Physics-Informed Neural Networks
        未发表(2021)本文也是关注采样点的一篇工作。主要从PINN的性能与采样点数量的关系方面入手考虑。提出了一个新的惩罚项,并对采样策略提出了一点看法。本文的工......
  • gorm中进行更新与删除操作
    这是一个系列的文章,上一篇的地址:上一篇上集我们说到如何进行查询的工作,这里我们来看看如何更新。还是SingleTable.go这个文件,只修改main函数中的内容:funcmain(){ va......
  • 在gorm中查询数据库
    这是一个系列的文章,上一篇的地址:上一篇现在我们来看看如何查询某一条数据。例如现在我想查询数据库中是否存在一个名为“灰太狼”的人,那么就可以这么写代码:packagemain......
  • winform窗体应用管理员登录验证
    首先创建一个管理员类,声明字段并封装生成构造方法如图:    第二添加DBhelper类的封装 如下:namespaceWvidin{//数据库相关操作验证登录p......
  • Hibernate 自动进行数据封装
    1.前言Hibernate可以构建各种复杂的SQL语句,但其本质都是反射机制结合映射关系完成的。框架也仅是一款程序产品,人为编写的产物。要相信,只要你愿意,你完全可以实现自己的J......
  • Is L2 Physics-Informed Loss Always Suitable for Training Physics-Informed Neural
      NeurIPS2022本篇工作对PINN中的物理损失进行了探究,作者认为L2损失并不总是适用于训练PINN。并从PDE解的稳定性角度给出了理论性的说明。读了这篇文章,感觉自己的毕......
  • CSS transform 属性
    transform属性是CSS中一个用于转换元素形状、大小和位置的属性。它允许开发人员对元素进行以下转换:平移(translation)缩放(scale)旋转(rotation)拉伸(skew)矩......
  • Unknown table 'COLUMN_STATISTICS' in information_schema
    问题:备份数据库的时候报错:mysqldump:Couldn'texecute'SELECTCOLUMN_NAME,JSON_EXTRACT(HISTOGRAM,'$."number-of-buckets-specified"')FROMinformation_schema.COLUMN......
  • 分离分层的 platform驱动
    一、分离分层输入子系统、usb设备比驱动以及platform类型的驱动等都体现出分离分层机制;如下图所示,一种典型的分离分层框架:二、platform机制下的分离分离就是在驱动层......
  • 5款好看的winform开源UI库
    NanUI   NanUI界面组件是一个开放源代码的.NET/.NETCore窗体应用程序(WinForms)界面组件。她适用于希望使用HTML5/CSS3等前端技术来构建Windows窗体应用......