hibernate是一种是轻量级的ORMapping框架。学过EntityFramework的。会感觉挺亲切的。

对于各种层次程序猿对数据库的设计:

小菜程序员这样做:首先考虑数据的存储,对于功能的实现,怎样方便怎样来。

至于说冗余神马的。不予考虑。

资深程序员这样做:首先设计数据库的关系模型。用工具画画ER图,或者画一下物理模型。

考虑一下关系模型。好点儿的懂得利用工具。把设计好的模型转换成数据库脚本。

然后扔数据库里。然后,在功能实现过程中,对于难以实现的功能。算啦,还是改动一下数据库。

这样好做多了。

骨灰级程序员这样做:首先分析业务需求,设计对象模型。

考虑各种多重度,维护关系等等。

考虑数据的存储性能,数据量的影响……

以上纯属…………

在面向对象的世界中,对象模型是很重要的。由于面向对象的思想使得职责更加清晰。

使用面向对象的编程。开发过程中。能够不用考虑表结构。脑子里没有表的概念。仅仅对对象进行操作。

hibernate作为持久层:

使用hibernate的优点:

、使开发者职责专一。hibernate自己封装了一套机制。通过对象模型和*.hbm.xml配置信息,自己主动的将对象模型转换成表结构。

使得开发者。仅仅关注对象,忽略表结构。面向对象的开发。

、持久层easy更换。hibernate是轻量级的持久层框架。也easy进行更换。

比方更换存储方式。仅仅须要改动*.hbm.xml文件就可以。又一次生成表结构。

而代码不用进行改动。所以使用hibernate更加easy进行转换

、提高了编码效率。使用hibernate作为持久层。省去了JDBC代码。使得业务层开发者不须要考虑数据的逻辑结构,仅仅关心业务的数据实体。

Hibernate的缺点:

、不灵活。

既然操作的都是对象,相比与使用传统的sql语句来说。不方便。

、实现复杂。

并且非常多复杂的查询sql语句,非常难用hibernate进行查询。所以对于程序的调优来说有困难。

、大数据处理慢。

对象模型和关系模型的转换,将带来时间消耗。所以hibernate对大批量的数据操作还存在问题。

ORM进阶:Hibernate的优劣对照的更多相关文章

  1. ORM进阶:Hibernate框架搭建及开发

    本节将開始.使用hibernate搭建持久层.当然在决定用不用之前,还请斟酌一下是否使用.了解一下Hibernate的优缺点. Hibernate优劣对照 Hibernate是一个持久的ORM框架.首 ...

  2. ORM进阶之Hibernate 的三大对象

    ORM进阶之 ORM简单介绍 ORM进阶之Hibernate 简单介绍及框架搭 ORM进阶之Hibernate 的三大对象 我们在上一篇博客中讲到了怎样搭建一个Hibernate框架, 提到Hiber ...

  3. ORM进阶之Hibernate中对象的三大状态解析

    ORM进阶之 ORM简单介绍 ORM进阶之Hibernate简单介绍及框架搭 ORM进阶之Hibernate的三大对象 ORM进阶之Hibernate中对象的三大状态解析 在Hibernatea中每一 ...

  4. Django中的ORM进阶操作

    Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...

  5. 学习ORM框架—hibernate(三):跟踪持久化对象状态,掌握对象持久化

    准备工作 在上篇博客中学习ORM框架—hibernate(一):初识hibernate,通过简单的实例说明O和R的映射过程.本篇博客将要介绍hibernate中持久化对象的状态,并使用hibernat ...

  6. Django orm进阶查询(聚合、分组、F查询、Q查询)、常见字段、查询优化及事务操作

    Django orm进阶查询(聚合.分组.F查询.Q查询).常见字段.查询优化及事务操作 聚合查询 记住用到关键字aggregate然后还有几个常用的聚合函数就好了 from django.db.mo ...

  7. django框架基础-ORM进阶-长期维护

    ###############    ORM进阶---contenttype    ################ 设计思路: """ 路飞有两种课,专题课和学位课, ...

  8. ORM和Hibernate的配置方式

    分层体系结构: 逻辑上一般分为三层:表述层(提供与用户交互的界面).业务逻辑层(实现各种业务的逻辑).数据库层(负责存放和管理应用的持久性业务数据). 物理上一般分为两层:物理层(每一层都运行在网络上 ...

  9. JPA与ORM以及Hibernate

随机推荐

  1. [NOI2016]优秀的拆分(SA数组)

    [NOI2016]优秀的拆分 题目描述 如果一个字符串可以被拆分为 \(AABB\) 的形式,其中 A和 B是任意非空字符串,则我们称该字符串的这种拆分是优秀的. 例如,对于字符串 \(aabaaba ...

  2. linux基础入门(二)命令

    原创作品,允许转载,转载时请务必声明作者信息和本声明. https://www.cnblogs.com/zhu520/p/10732334.html =[本人小白,有错指出.谢谢! 一:使用Secur ...

  3. 把握linux内核设计思想(三):下半部机制之软中断

    [版权声明:尊重原创.转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途]         中断处理程序以异步方式执行,其会打断其它重要代码,其执行时该中 ...

  4. Java基本数据类型及字节

    1.基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型byte.short.int. ...

  5. hdoj--3549--Flow Problem(最大流)

    Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Tot ...

  6. delete 用法总结

    // delete 删除 // 语法: boolean delete 数据; // 在当前作用域上删除数据 // 用法: // 1, 删除数组中的一个元素 // 2, 删除一个对象的属性或方法 // ...

  7. PasswordHelper 对user对象的password进行加密重设

    public class PasswordHelper { private RandomNumberGenerator randomNumberGenerator = new SecureRandom ...

  8. 130.C++经典面试题 52-100

  9. JWT使用1

    JSON Web Token - 在Web应用间安全地传递信息 转载收藏于:http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON ...

  10. 基于.NET平台常用的框架技术整理

    个人整理 部分收藏于:http://www.cnblogs.com/hgmyz/p/5313983.html 自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线 ...