`
getclass
  • 浏览: 44507 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

银行主数据项目(MDM)的数据持久层,你选择hibernate还是ibatis(MyBatis)

阅读更多

一个银行的主数据项目.数据数据持久层的实现上一直有争议.不知道,大家有没有什么好的建议.

主数据项目的模型设计,不是像交易类型的模型偏向三范式的.
举一个简单的场景,提供几个过滤条件,根据过滤条件查询结果并展现.这个数据的收集和过滤可能要涉及十几张表.

hibernate对这个功能的实现要用十几张表,就要用到十几个对象.这样提供过滤,并要整理清楚对象间的逻辑关系.对程序员的要求相对要高些.
如果用ibatis的话,程序员在ETL人员的协助下,一条sql就能很快解决问题.难度下降了不少.

另一个角度,性能上.hibernate的常用优化是第三方的二级缓存技术.可是,十几张表的关联几百万的数据量,自动生成的sql会有或多或少的问题.不如直接sql来的直接,可以在数据库层面直接优化.sql优化,索引,表分区等.

想听听大家对这个问题的看法 
分享到:
评论
28 楼 getclass 2011-06-10  
george_space 写道
beyondsphinx 写道
我一直不太明白Hibernate有那么不灵活吗?里面不可以写SQL吗,不可用用存储过程嘛,不可以直接连接数据库吗?

问题的关键是:如果在Hibernate的名称下使用的是SQL和存储过程,那么你的持久层和Hibernate有什么关系?

你穿着军装去挖煤开矿,你说你是解放军还是煤矿工人?



这样用也不是hibernate的设计初衷.不是能不能,是适合不适合.
我分析,hibernate 提供 sql 等这样的API,主要是考虑老系统的兼容和改造时使用的.
使用的场景应该不是咱们讨论的这个场景.
27 楼 george_space 2011-06-10  
beyondsphinx 写道
我一直不太明白Hibernate有那么不灵活吗?里面不可以写SQL吗,不可用用存储过程嘛,不可以直接连接数据库吗?

问题的关键是:如果在Hibernate的名称下使用的是SQL和存储过程,那么你的持久层和Hibernate有什么关系?

你穿着军装去挖煤开矿,你说你是解放军还是煤矿工人?

26 楼 highsense 2011-06-10  
aa87963014 写道
george_space 写道
aa87963014 写道
看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

智商达到什么样的一个高度的人会把Hibernate 和jbpm扯在一起

要不要把jdbc拉出来再批一顿hibernate的局限性?

我看你的智商也搞不到哪里去,连人家要说什么都不看清楚,就在这里发飙。看来是个弱智的马甲。


  啧啧 除了喷 hibernate适用范围balabala 还能说什么。干什么事情都要把hibernate扯进来 hibernate不是神


你是hibernate的托吧,那么拥护hibernate。任何技术和框架都有自己的应用场景,大家讨论一下怎么了?hibernate就不能被批了?
25 楼 evanzzy 2011-06-10  
动钱的系统绝不能用hibernate,切记切记。IBatis或Spring JdbcTemplate都可以
24 楼 beyondsphinx 2011-06-10  
我一直不太明白Hibernate有那么不灵活吗?里面不可以写SQL吗,不可用用存储过程嘛,不可以直接连接数据库吗?
23 楼 dreamvalley 2011-06-10  
squll369 写道
不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。

赞同,我们以前一个很大的项目,就考虑过这个问题,因为团队水平参差不齐和DBA调试的问题,最后选用了ibatis
22 楼 getclass 2011-06-10  
aa87963014 写道
george_space 写道
aa87963014 写道
看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

智商达到什么样的一个高度的人会把Hibernate 和jbpm扯在一起

要不要把jdbc拉出来再批一顿hibernate的局限性?

我看你的智商也搞不到哪里去,连人家要说什么都不看清楚,就在这里发飙。看来是个弱智的马甲。


  啧啧 除了喷 hibernate适用范围balabala 还能说什么。干什么事情都要把hibernate扯进来 hibernate不是神



大家讨论的是,什么技术更适合实现这样的需求.
21 楼 aa87963014 2011-06-10  
george_space 写道
aa87963014 写道
看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

智商达到什么样的一个高度的人会把Hibernate 和jbpm扯在一起

要不要把jdbc拉出来再批一顿hibernate的局限性?

我看你的智商也搞不到哪里去,连人家要说什么都不看清楚,就在这里发飙。看来是个弱智的马甲。


  啧啧 除了喷 hibernate适用范围balabala 还能说什么。干什么事情都要把hibernate扯进来 hibernate不是神
20 楼 getclass 2011-06-10  
itstarting 写道
首先得理解主数据的定义,主数据不是运营型数据,一般更新频度很小,定义清晰,维度多(有点类似于OLAP的多维数据结构)

要是我来搞,主线围绕两个:
1、数据库端:合理运用存储过程、物化视图,基本的数据库引擎优化自不必说
2、DAO层:充分使用缓存,结合查询的特点再次优化数据库索引+合理分区

这样的话,无所谓hibernate or ibatis,都好用——光聊这两个东西,根本没意义——你非要让鲁智深练眉来眼去剑法,岂不是要早饭



你的观点我还是很认同的.我们在曾经的项目中也是采用了部分这样的技术手段.
换一个项目的角度,补充一点.数据项目的核心重中之重是模型的设计.项目的成败取决于数据的准确.

hibernate or ibatis 的选择是,具体项目下的具体需求.实施中,那个更适合的问题.不能是指所有
19 楼 getclass 2011-06-10  
凤凰山 写道
兄弟搞ECIF的,采用的ibatis,ETL部分800万客户不到3小时做完,服务方面的并发压力也在300左右,ibatis还是比较顺,灵活


我们也是做ECIF的.部分项目是IBM InfoSphere MDM Server产品实施,部分是直接搞定.
ECIF我感觉还是有搞头的,不过今年我们的生意不太理想啊.
明年也许会好很多,国内市场还需要点时间去了解ECIF.
18 楼 getclass 2011-06-10  
<div class="quote_title">tkevin13 写道</div>
<div class="quote_div">突然想起了EJB。 这种项目 数据库基本就是oracle或者db2。选用任何开源框架都一样,这种项目拿开源框架做持久层。架构喝多了吧</div>
<p> </p>
<p>我们没喝多  :)</p>
<p>之前做的项目是用主数据产品(IBM InfoSphere MDM Server)直接实施,确实是EJB.数据库用的也是db2.</p>
<p>不过,项目有大有小.包括实施周期和客户的资金投入.所有是有局限的.</p>
<p>根据项目实际需求和数据量大小,合理使用各方面资源.保证质量的前提下,快速完成.对客户和乙方都是有好处的.</p>
<p> </p>
<p>开源框架的选择,对实施速度和实施人员的要求上是有区别的.这也会直接影响到项目的成本和结果.</p>
17 楼 itstarting 2011-06-09  
首先得理解主数据的定义,主数据不是运营型数据,一般更新频度很小,定义清晰,维度多(有点类似于OLAP的多维数据结构)

要是我来搞,主线围绕两个:
1、数据库端:合理运用存储过程、物化视图,基本的数据库引擎优化自不必说
2、DAO层:充分使用缓存,结合查询的特点再次优化数据库索引+合理分区

这样的话,无所谓hibernate or ibatis,都好用——光聊这两个东西,根本没意义——你非要让鲁智深练眉来眼去剑法,岂不是要早饭
16 楼 凤凰山 2011-06-09  
兄弟搞ECIF的,采用的ibatis,ETL部分800万客户不到3小时做完,服务方面的并发压力也在300左右,ibatis还是比较顺,灵活
15 楼 tkevin13 2011-06-09  
突然想起了EJB。 这种项目 数据库基本就是oracle或者db2。选用任何开源框架都一样,这种项目拿开源框架做持久层。架构喝多了吧
14 楼 george_space 2011-06-09  
aa87963014 写道
看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

智商达到什么样的一个高度的人会把Hibernate 和jbpm扯在一起

要不要把jdbc拉出来再批一顿hibernate的局限性?

我看你的智商也搞不到哪里去,连人家要说什么都不看清楚,就在这里发飙。看来是个弱智的马甲。
13 楼 jorneyR 2011-06-09  
MyBatis + 存储过程
12 楼 aa87963014 2011-06-09  
看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.

智商达到什么样的一个高度的人会把Hibernate 和jbpm扯在一起

要不要把jdbc拉出来再批一顿hibernate的局限性?
11 楼 3eee 2011-06-09  
一般采用 iBATIS,我们公司就是的。
10 楼 george_space 2011-06-09  
<div class="quote_title">抛出异常的爱 写道</div>
<div class="quote_div">
<div class="quote_title">getclass 写道</div>
<div class="quote_div">
<div class="quote_title">george_space 写道</div>
<div class="quote_div">
<div class="quote_title">gafking 写道</div>
<div class="quote_div">
<div class="quote_title">squll369 写道</div>
<div class="quote_div">不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。</div>
<br>同意,这样的场景用iBatis更合适</div>
<br>小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。<br><br><br><br>Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。</div>
<p><br><br>看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.</p>
<p> </p>
</div>
<p>jbpm 与 activiti 不是一码事</p>
</div>
<p><strong><span style="font-size: large;">是同一个作者。<br></span></strong></p>
9 楼 抛出异常的爱 2011-06-09  
<div class="quote_title">getclass 写道</div>
<div class="quote_div">
<div class="quote_title">george_space 写道</div>
<div class="quote_div">
<div class="quote_title">gafking 写道</div>
<div class="quote_div">
<div class="quote_title">squll369 写道</div>
<div class="quote_div">不用hibernate,大型项目一般不用hibernate,主要原因,大型项目开发人员多,团队多,水平大不相同,出了问题,伤不起,其外DBA也难插手。</div>
<br>同意,这样的场景用iBatis更合适</div>
<br>小项目也不见得适用Hibernate,关键看应用类型,如果应用多为单表简单增删改查,用Hibernate还行,如果应用很多都是多表联查、复杂汇总、执行存储过程、甚至动态建表的话,用MyBatis是最好的选择,如果硬要使用hibernate,无异于开着坦克上坡爬山路。<br><br><br><br>Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。</div>
<p><br><br>看来我的分析是正确的."Hibernate是JBoss的产品,JBPM也是JBoss的产品,但是从JBPM走出来的Activiti工作流,持久层大量使用的是:MyBatis,这足以说明Hibernate的局限性。" 这个论证很充分.</p>
<p> </p>
</div>
<p>jbpm 与 activiti 不是一码事</p>

相关推荐

    主数据管理(MDM)项目建设落地方案 .docx

    主数据管理(MDM)项目建设落地方案 主数据管理(MDM)项目建设落地方案是企业信息化建设的关键组件之一。该方案旨在解决大型企业面临的多个业务系统难以统一管理的问题和生产运营难管理的痛点。 Step 1: 立标准 ...

    主数据管理平台MDM7.0.1-用户操作手册-v3.1.1.doc

    ### 一、主数据管理平台(MDM)概览 #### 1.1 登录系统 **环境要求:** - **硬件配置:** 对于MDM7.0.1的运行,通常需要满足一定的硬件标准,例如处理器速度、内存大小以及存储空间等。 - **软件环境:** 包括操作...

    【主数据管理】大型集团公司主数据管理(MDM)平台建设方案WORD.docx

    - **统一管理**:构建集团统一的主数据管理平台,确保财务组织、会计科目、银行账号、往来单位、项目等关键主数据得到有效的梳理、整合和管控。 - **流程与功能配置**:实现主数据流程和功能的配置与开发,包括但不...

    主数据管理(MDM)与元数据管理

    主数据管理(Master Data Management,MDM)与元数据管理是IT行业中两个至关重要的概念,它们在企业数据治理中扮演着核心角色。主数据管理旨在确保企业关键业务实体(如客户、产品、供应商等)的一致性和准确性,而...

    MDM主数据管理平台功能架构图PPT课件.pptx

    MDM主数据管理平台功能架构图PPT课件 MDM(Master Data Management)主数据管理平台是企业信息化建设中的一种重要系统,旨在对企业的主数据进行集中管理、集成和共享。该平台主要功能架构图PPT课件对MDM主数据管理...

    mdm.rar_MDM_MDM主数据管理_java MDM

    MDM,全称为Master Data Management,即主数据管理,是企业信息化建设中的关键部分,它主要负责维护和管理企业核心业务实体的数据,如客户、产品、供应商等。这些数据是企业运营的基础,确保其准确、一致和及时对于...

    主数据管理MDM详细介绍

    主数据管理(Master Data Management,MDM)是企业信息化建设中的关键组成部分,旨在确保核心业务实体数据在整个企业内的准确、一致和可控。主数据主要包括客户、供应商、账户、组织单位等对企业运营至关重要的数据...

    【主数据管理】大型集团企业主数据管理(MDM)平台建设方案WORD.docx

    大型集团企业主数据管理(MDM)平台建设方案是为了实现集团统一主数据管理,整合财务组织、会计科目、银行账号、客户、供应商、项目等主数据,达到主数据的梳理、整合、管控。该方案涵盖了主数据管理平台的建设目标...

    主数据管理MDM解决方案

    主数据管理MDM解决方案 MDM为继承和管理参考数据提供免代码、低维护的解决方案。在MDM系统成为数据仓库的维数据的确定来源后,它使数据仓库能够侧重于卷管理和数据交付的数据管理目标。 简而言之,主数据管理提供...

    《SAP MDM主数据管理》 PDF (2/2)

    伴随着大数据、云计算、移动化等先进技术的应用和推广,主数据管理在这个词在企业信息管理领域经常被谈起,且目前SAPMDM是一个较新的模块,国内对于熟练掌握该模块的顾问需求量日益增大 介绍SAPMDM产品的第一本...

    数据治理MDM主数据管理元数据管理系统建设方案PPT资料(19份).zip

    ERP主数据与业务数据关系.pptx Informatica主数据管理建设方案74.ppt Oracle-MDM主数据管理方案(28页).pptx Oracle_MDM基础架构解决方案.pptx XX药业主数据管理平台项目建议.pptx 中国移动NG2-BASS 3.5元数据管理v...

    MDM企业主数据管理解决方案.pdf

    MDM企业主数据管理解决方案 Oracle MDM 企业主数据管理解决方案旨在帮助企业解决主数据挑战,提供一个统一、完整、准确的主数据管理解决方案。该解决方案可以从多个业务系统中整合最核心的、需要共享并保持一致的...

    MDM 主数据管理系统

    MDM(Master Data Management,主数据管理)是企业信息化建设中的关键组成部分,它旨在确保组织内的核心业务数据的一致性、准确性和完整性。MDM系统主要用于整合和管理那些跨部门、跨系统的共享数据,如客户信息、...

    主数据管理(MDM)系统应用建议

    MDM项目的成功实施能够帮助企业实现以下目标:提升数据质量,增强数据分析能力,提高决策效率,减少决策错误,加强内外部协作,为企业的数字化转型提供坚实的数据基础。通过MDM系统,企业能够更好地理解客户需求,...

    集团公司主数据(mdm)治理总体解决方案MDM.pptx

    ### 集团公司主数据(MDM)治理总体解决方案 #### 一、背景与挑战 随着企业规模的不断扩大,集团公司面临着数据管理方面的一系列挑战。这些挑战主要体现在以下几个方面: 1. **数据分散**:数据分布在不同的业务...

    SAP_MDM主数据管理

    SAP公司,MDM主数据管理的说明,使用说明

    XX制造业大数据项目之产品主数据蓝图方案【112页PPT】.pptx

    在XX制造业的大数据项目中,产品主数据蓝图方案是一项至关重要的工作,它涉及到企业的核心数据管理和运营效率。产品主数据是制造业的灵魂,它涵盖了描述产品各个方面稳定且唯一的信息,如品牌、型号、配置等,服务于...

    主数据管理MDM系统规划方案集团

    关于某一个集团主数据管理DMD系统规划方案:从术语、主数据管理系统建设思路、管理工作建议、标准化、经验总结与交流,实施方法论、比较完善的集团主数据系统规范方案。

    主数据概念用法解释,如何去管理主数据,主数据管理分多少个层次

    简单来说,主数据管理(MDM)保证你的系统协调和重用通用、正确的业务数据(主数据)。 主数据管理的重要性: 主数据管理(MDM)可以帮助我们创建并维护整个企业内主数据的单一视图(Single View),保证单一视图的准确性...

Global site tag (gtag.js) - Google Analytics