zoukankan      html  css  js  c++  java
  • ORM进阶:Hibernate的优劣对照

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

     

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

     

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

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

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

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

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

    这样好做多了。

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

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

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

     

    以上纯属…………

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

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

     

    hibernate作为持久层:

     

     

     

    使用hibernate的优点:

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

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

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

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

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

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

     

     

    Hibernate的缺点:

    1不灵活

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

    3实现复杂

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

    3大数据处理慢

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

     

     

     

  • 相关阅读:
    WinowsXP 任务栏无法显示当前运行程序图标
    日志记录组件[Log4net]详细介绍(转)
    桌面上的IE图标变成了快捷方式那种图标 怎么还原回来
    面试必须要知道的SQL语法,语句(转载)
    兼容 火狐 IE 的JS时间控件 任意格式 年月日时分秒
    Nagios远程监控软件的安装与配置详解(1)
    linux集群 负载均衡实验笔记
    PHPB2B 模板 标签
    PHP 去除 HTML 回车 换行 空格
    OpenX参考网址
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6972843.html
Copyright © 2011-2022 走看看