问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用hibernate的11大优势

发布网友 发布时间:2023-07-08 10:15

我来回答

1个回答

热心网友 时间:2024-09-30 02:17

  Hibernate在解决性能问题方面做得非常好 有了它的缓存机制 使用第三方缓存和数据库连接池 就较好的解决的性能问题 但这些还不够 hibernate给了开发者足够的自由 让开发者自己去控制性能问题

  学习了一段时间的ibatis 我觉得hibernate有着ibatis无法替代的优势

   开发者都知道 hibernate让我们以oo的方式操作数据库 这让我们看到了hibernate的强大之处 体验到操作数据的方便 但Gavin King说 hibernate最耀眼之处是hibernate的缓存机制 而不是以oo的方式操作数据库 Hibernate的缓存机制不外乎是一级缓存session 二级缓存sessionFactory 和第三方缓存如ehcache 也就是hibernate的最强大的地方是它的缓存 理解了这个才能真正的理解hibernate 缓存实在太难了 我至今未能真正理解

   可维护性 ibatis宣扬写sql语句 它将sql语句放进一个单独的xml文件 这种方式赢得了很多开发者的喜爱 一句话 方便维护 但hibernate同样具有这种功能 而且比ibatis更加强大 Hibernate的命名查询/命名参数查询 就是将hql语句放在一个单独的xml文件之中 它仍然让人们以面向对象的方式去操纵数据 这得到大量遵循oo方式开发者的喜爱 而不用在以oo的方式写着代码的同时 然后再转变思维 用面向关系的方式去写那些sql语句 但hibernate不仅做了这些 它的native sql查询方式 完全满足sql语句的偏爱者 它像ibatis一样 将sql语句放在配置文件之中

   性能 我坚信 hibernate性能问题不是问题 想想那么多大中小项目都在使用hibernate 你还怀疑hibernate的性能吗?spring整合hibernate之后 在真正性能瓶颈的地方 完全可以使用spring集成的jdbc 或直接写存储过程得了 但首先得确认 这实在是性能瓶颈的地方 我想 不应想当然的认为性能的问题 所谓的性能问题阻挠了很多人

  我认为 性能的好坏无外是发送sql语句的多少而已 性能好 发送的sql语句少 性能差 就是发送大量的sql语句 Hibernate在解决性能问题方面做得非常好

  有了它的缓存机制 使用第三方缓存和数据库连接池 就较好的解决的性能问题

  但这些还不够 hibernate给了开发者足够的自由 让开发者自己去控制性能问题

  我认为开发者可以在以下几个方面自行调优

  a 在查询字符串中 应该总是使用jdbc的占位符? 或使用使用命名参数 不要自查询中使用字符串值来代替非常量值

  b Flush会影响性能 频繁刷新影响性能 尽量减少不必要的刷新

  c Cascade策略 在几对几的关系 正确设置cascade策略 想清楚在操作对象A的同时是否需要级联操作对象B 比如在one to many的父子关系中 删除了父亲one 需级联删除子many 这时的one这端可设置cascade = delete 这样在删除one时 会自动删除子 但对子的操作不会影响父 Cascade还有其他的属性值 只要设置正确 可提升性能

  d lazy策略 正确设置延迟加载策略同样会提升性能 在one to many或many to many中 通常总应该延迟加载many的一方的到内存 设置了lazy = true 首先发送sql语句 加载自己到内存 到需要时才加载级联对象 lazy= false 则会同时加载自己和级联对象到内存

  e 另外还有集合的性能(set list map array) 都应正确设置

  f 正确使用第三方缓存 在读操作频繁写操作不多的情况 使用第三方缓存可大幅度提升性能 如ehcache的缓存策略有 read only read write和notstrict read write

  f 随着hibernate新版本的发布 和技术的发展 我相信hibernate的性能会越来越好 所有性能不是不使用hibernate的原因

   hibernate不仅仅作为持久层的orm框架存在 它除了层的持久化操作外 还有很多

  在注解annotation已经走向主流的今天 hibernate 迅速响应 让xml部署描述符成为可选的 Hibernate annotation 对大字段的处理只是一个@Lob就搞定了

  hibernate search对Lucene进行了轻量级的封装 全文检索变得非常简单

  Hibernate validator被认为是最合理的验证方式 将验证策略直接附在贯穿各层的领域模型domain上 不再需要哪些web框架的xml方式的验证 代码中不再出现大量的非空/null的判断

   jbpm Jbpm业务流程引擎的持久层采用hibenrnate来实现 要想使用jbpm hibernate是必须的 我想 业务流程管理无比重要 在soa迅速发展的今天 如果实施soa项目 业务流程管理是必然和必须的 因为soa就是业务和it技术的融合 是业务流程管理和it基础架构的融合 在soa中 业务管理是第一位的 这需要相应的技术来实现该业务流程管理 开源领域的jbpm我想会是首选 所以 为了将来有可能实施soa项目 为了实现soa的业务流程管理 应该使用hibernate

   大家都知道 hibernate将ejb 时代的实体bean赶进了历史 而ejb 的jpa标准也只不过是hibernate的子集而已 jsr规范请求的威力是巨大的 没有各种jsr规范请求 就不会有各种应用程序框架 各种应用程序框架只是那些jsr规范请求的实现者 jpa作为持久层的规范标准 引导持久层orm框架的方向 jpa同样以面向对象的方式操作数据库 而不是写sql语句 规范标准都完全orm 不写sql了 你还有理由不跟着它吗?

   Spring+hibernate+范型+可变参数 这是一个非常强大的组合 对应普通的crud操作 你不再需要重复写那些烦人的相似的层和manager层的代码 仅仅需要写一次 就完成了所有大量的crud操作 Ibatis尽管也支持范型 但始终没有hibernate支持的好

   Jboss hibernate是jboss的项目 jboss的所有项目的持久层都采用的hibernate 要知道 jsr规范组的专家们大多数是来自jboss的 在一定程度上说 jboo引领着java的发展方向 使用hibernate 跟着jboss 不偏离java的发展方向

   Gavin King 我最崇拜的偶像 他不仅发明了强大的hibernate 还搞出了同样强大且优雅的web 应用程序框架seam 他是ejb 专家组成员之一 是jpa规范请求的领导者 他java领域最有发言权 最权威的领袖人物之一 现在 他领导web bean的 jsr 的发展 web bean规范的制定 全球软件巨头如ibm oracle bea和apache没有一个反对 纷纷响应 Web bean 想象起来 实在太美好了 完全的松耦合和强类型 所有的应用组件生活在一个应用组件上下文context中 相互合作 那时将不再有各种各样的上下文环境 不再有struts 的ActionContext 不再有spring的ApplicationContext 不再有hibernate的session 不再有持久化上下文 不再有事务上下文 不再有安全上下文 所有组件生活在一个大家庭中 大家其乐融融 实现天下的大和平

   osgi 我认为现在最值得学习的一个技术 有了osgi 实现真正的多模块开发 改变传统的开发方式 现在 已经有了hibernate osgi spring dynamic mol(osgi) struts 同样实现了对osgi的支持 目前 eclipse是基于osgi开发的 ibm的websphere v bea的所有产品都重构在osgi上 spring的应用服务器同样基于osgi 在EclipseCon 上 osgi成为了主要的话题 Osgi受到如此的待遇 一点不奇怪 因为他具有无比强大的功能 改变传统的软件开发方式 Osgi采用树设计模式 将一个项目分成多个模块(bundle) 每个模块单独部署 单独运行 说白了 就是将一个工程分成许多的插件 每个插件单独开发 重复使用 实现完全的即插即用 太令人激动了 如果公司的软件开发基于osgi 将会有大量的重复使用的osgi bundles 公司将会积累大量的无形资产 软件开发将会越来越快 而ibatis现在还没见到对osgi的支持

   hibernate的社区非常繁荣 ibatis则相对平静

  综述 hibernate还有很多优秀的特点 只是我们不知道 Hibernate与ibatis 就像大家闺秀对小家碧玉 大家闺秀不仅具有小家碧玉的全部 而且知名度更高 更受尊敬 更受人追捧 更有发展前途 小家碧玉尽管也很有魅力 但始终比上大家闺秀

  Hibernate所做的不仅仅是层的持久化工作 而ibatis恰恰如此

  选择hibernate 选择orm的王者 选择更全面的工作体验 选择更高效的工作方式 选择更多的利润 选择Gavin King 跟着领袖走 选择jboss 追随开源的潮流 不偏离java的发展方向

lishixin/Article/program/Java/ky/201311/28357
使用hibernate的11大优势

Jboss hibernate是jboss的项目 jboss的所有项目的持久层都采用的hibernate 要知道 jsr规范组的专家们大多数是来自jboss的 在一定程度上说 jboo引领着java的发展方向 使用hibernate 跟着jboss 不偏离java的发展方向 Gavin King 我最崇拜的偶像 他不仅发明了强大的hibernate 还搞出了同样强大且优雅的web 应用程序框架seam...

labtechgroup

LabTech Group,即北京莱伯泰科仪器股份有限公司,是业界领先的实验室科学仪器与解决方案提供商。我们专注于分析测试仪器的研发、生产和销售,致力于为全球科研工作者、高校及企业实验室提供高性能、高稳定性的产品与服务。通过持续的技术创新与品质提升,LabTech Group在样品前处理、光谱分析、色谱分析等领域不断突破,助力科学探索与产业升级,携手客户共创科研新篇章。北京莱伯泰科仪器股份有限公司北京莱伯泰科仪器股份有限公司成立于2002年,是一家专业从事实验分析仪器的研发、生产和销售的科技型公司。莱伯泰科自成立之初便致力于为环境检测、食品安全、疾病控制、半导体检测、生命科学、能源化工、核环保、...

为什么好多人都说Hibernate是垃圾?究竟是为什么?

1. 一个简单的WEB应用要用到三个臃肿的框架,下载的时间比开发的时间长 2. 每个框架都有个哆嗦的XML文件要配,作为一个程序员,我始终坚持认为改代码比改配置文件容易 3. 要拷贝的支持类库太多,占到我项目文件夹总大小的90%以上 4. 基本上都要安装eclipse插件,否则开发就是一场噩梦 5...

hibernate映射和java问题

门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。 11、FLYWEIGHT—每天跟MM发短信,手指都累死了,最近买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面加上MM的名...

...集成到spring,我看网上都是把hibernate的配置直接写到applicationConte...

import com.spring.demo.manager.Hibernate_BookManager;public class HibernateDemo { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml") ; Hibernate_BookManager manager = (Hibernate_BookManager)context....

springmvc验证的hibernate validator 框架 的groups怎么用

11.select name,COUNT(*) as 总人数,MAX(age) as 最大年龄,MIN(age)as 最小年龄,AVG (age) as 平均年龄,SUM(age) as 年龄综合 from Person group by name;12.再来个更强大的功能.看看我们的sql语句.13.当然,可以再里面增加几条数据,再加大家一个更强大的用法.再增加几条数据.那么现在把...

hibernate连接在spring MVC中出错

原因:可能你更新了hiberante的包,导致原来的原来ehcache不行了,原来使用的是1.1的版本,换成1.5以上的正常,另还需要一个javassist.jar包 (10)Connections could not be acquired from the underlying database 大概的意思是说:不能连接当前所配置的数据库,检查你的URL链接字符串是否正确。(11) ...

用hibernate连接oracle11数据库出现的问题: java.sql.SQLException: 指定...

<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <property name="cache.use_query_cache">true</property> <!-- Drop and re-create the database schema on ...

hibernate sql怎么使用别名

项目环境:hibernate3.6.1 mysql5.7.3 驱动:mysql-connector-java-5.1.26 问题描述:项目是从一个sqlserver 数据库翻转到mysql数据库上的。通过sql查询,自动映射到对象上,但是总是报错。奇怪的问题:sql打印出来放到数据库客户端上 可以正常执行结果。但是sql就是查询不出来,报 Column 'account' not found. 这样的错...

Hibernate Dialect must be explicitly set

不管你是用的hibernate.cfg.xml还是hibernate.properties文件或是其他配置方式,造成这个问题的可能只有两个:1你的hibernate.dialct这个属性没有配置正确。或者有可能是配置正确而没有调用才会导致这个问题。hibernate.cfg.xml格式怎么修改就不说了。hibernate.properties文件格式修改方法:注意hibernate.properties...

我在做hibernate多对多关系的时候 出现这个错误org.hibernate.LazyInitia...

lazy=“false” 是 加在Set属性那边

hibernate和spring java hibernate hibernate的功能 hibernate还有人用吗 hibernate hql hibernate注解 hibernate介绍 hibernate集群 hibernate多对多
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四川灵猴工程管理有限公司怎么样? 邓光君湖北师范学院教授 四川伟豪建筑工程有限公司怎么样? 成都五月花投资管理有限公司怎么样? 四川同君企业管理有限公司怎么样? 一直很想知道一部电影的名字。是日本的,悲剧,讲的是一个小偷的故事,下... 异性朋友生日送什么礼物好啊? 公主抱女生有什么反应 ...摩托车什么手续都没有了,还能上牌照吗?都需要什么啊? ...长20厘米宽14厘米那样从四角剪去边长2厘米的正方体然后做成一个无盖... 贷60万元等本等金还13个月后提前还款本金30万元以后每月应还多少钱? ...年利率5.88%,已还13个月,想提前还款25万,怎样划算? 房子银行贷款满13个月之后想卖怎么交接? 贵州广播电视大学有哪些专业 补个体户营业执照需要什么手续 无双大蛇2魔王再临戏剧模式怎么全部通关 纤维拼音怎么打 ...警官是个德国人,技师是个法国人,恋人是个瑞士人,银行家 瑞士人对财富的看法是什么? 郑义逃离地球旅游收入怎么样 这道牛腩煲 会议就餐需要采购吗 ...精武门》、《猛龙过江》、《龙争虎斗》的拍摄地点在哪里?_百度... 初二物理题 需要解题过程 格式规范点 谢谢呢 小刚上午九点出发骑车前往相距十二公里的外婆家,动身前他打电话告诉外婆... 我的语文梦怎么写作文 梦见书摊 计算机一级证书怎么查询? 51单片机扩展外部ROM或RAM,怎么算出用 了 多少个地址线? C51单片机中 XBYTE[] 括号中的地址如何通过实际电路计算,请举一下具体... 借了42万贷款,第13个月就想还清,共还多少钱 ...合同签的买卖合同,到期我没还上车给我卖了我能要回来吗?_百度... 纽约阿旺在美国的真实状况 不是车主卖的车,如何把车拿回来? 自己的车卖给二手车1天后悔了能不能把自己的车要回来? 苹果手机4有一款游戏,好像角斗士一样,还有长矛,还有慢动作,是什么名字... 我把车卖了,还没有过户,还可以要回来吗 有一个游戏和别人打架可以选格挡突击什么的 小沈阳演唐僧那个小品叫什么名字 他是一个散仙名叫天星,穿越到异界寻找爱人,宠物是火麒麟,武器是开天... 求一部漫画 类似用国际象棋博弈的,一个棋代表一个人 找一部国产彩色漫画的名字,关于象棋的,大概剧情是男主一行人被困在一... 张家港山香教育培训怎么样 温州山香教育正规吗 ...背把剑的小鬼 对手是国际象棋的化身。想多了解那部漫画 请问有谁知道一本漫画的名字?讲的是一个魔王,用一种金属按照国际象棋制 ... 肥城山香教育怎么样 威海山香教育怎么样 夏天游泳后会头晕,问什么,是不是水质不好! 橘子和霉干菜能一起吃吗