ibatis和hibernate比较

COMSOL+AI实战:5个超实用技巧让你的仿真效率翻倍(附Python代码) 本文详细介绍了如何将人工智能(AI)与COMSOL仿真软件结合,通过Python脚本实现五大实用技巧,包括自动化生成数据集、构建代理模型、集成AI优化算法、利用神经网络加速场量求解以及智能结果分析,从而显著提升多物理场仿真的效率和自动化水平。 阅读详情
iBatis与Hibernate比较

hibernate简介

  hibernate是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,使得 java程序员可以随心所欲的使用对象编程思维来操纵数据库.hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在servlet/jsp的web应用中使用,最具革命意义的是,hibernate可以在应用ejb的j2ee架构中取代cmp,完成数据持久化的重任.

  一、基本功能

  hibernate作为数据持久化的中间件,足以让数据库在业务逻辑层开发中去冬眠.它通过可扩展标记语言(xml)实现了类和数据表之间的映射,使程序员在业务逻辑的开发中面向数据库而改为面向对象开发.使整个项目开发分工更加明确,提高了程序开发的效率.

  configuration对象:

  configuration 类负责管理hibernate 的配置信息.hibernate 运行时需要

  获取一些底层实现的基本信息,其中几个关键属性包括:

  数据库url

  数据库用户

  数据库用户密码

  数据库jdbc驱动类

  数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如hibernate数据类型到特定数据库数据类型的映射等.

  以上信息一般情况下由hibernate.cfg.xml或者hibernate.properties文件来配置,实现与不同数据库的连接.

  session对象:

  session是持久层操作的基础,相当于jdbc中的connection:

  实例通过 sessionfactory实例构建:

  configuration config = new configuration().configure();

  sessionfactory sessionfactory = config.buildsessionfactory();

  session session = sessionfactory.opensession();

  之后我们就可以调用session所提供的save、find、 flush等方法完成持久层操作.因此session对象也封装了所有对数据库的操作来实现hibernate对数据库的操纵功能,如:

  save()方法实现增加和保存;

  delete()方法实现数据的删除;

  update()方法实现数据更新和修改;

  find()方法实现数据的检索;

  hibernate会根据不同的操作自动生成相应的sql语句,从而实现了程序员对po对象的操作转化为对数据库关系表的操作.

  二、使用步骤

  1.编写hibernate配置文件

  hibernate配置文件有两种,分别是hibernate.cfg.xml文件和hibernate.properties,推荐使用 hibernate.cfg.xml.

  2.po和映射文件

  使用middlegen和hibernate-extensions从数据库导出po的映射文件,并在 hibernate.cfg.xml当中声明.

  3.编写dao

  对每一张关系表编写一个dao,提供一组增、删、改、查方法供业务逻辑对数据库操作使用.

  更多的细节请大家参阅hibernate的网站获取详细的信息.并在各自的实践和开发中加深体会.

ibatis 简介

  相对hibernate和apache ojb 等"一站式"orm解决方案而言,ibatis 是一种"半自动化"的orm实现.所谓"半自动",可能理解上有点生涩.纵观目前主流的orm,无论hibernate 还是apache ojb,都对数据库结构提供了较为完整的封装,提供了从pojo 到数据库表的全套映射机制.程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate或者ojb 提供的方法完成持久层操作.程序员甚至不需要对sql 的熟练掌握,hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行.

  ibatis最直接的好处就是不但为程序员提供了对象与关系数据库之间的映射,同时提供操作方法与sql间的直接影射,设计者可以直接为一个方法指定一条sql语句,从而取得更加准确的数据,同时为优化查询、连接查询提供了方便.

  一、基本功能

  作为又一个轻量级的orm中间件,ibatis除了提供了对数据库基本的增、删、改、查外还提供了连接管理,缓存支持,线程支持,(分布式)事物管理等一套教为完整的数据库管理功能.

  sqlmapclient对象是ibatis持久层操作的基础,相当于hibernate中的session,提供对sql映射的方法.

  insert()方法实现对插入sql语句的映射;

  delete()方法实现对删除sql语句的映射;

  update()方法实现对更新sql语句的影射;

  queryforlist()、queryformap()、queryforobject()、 queryforpaginatedlist()等方法提供了一组查询sql语句的影射;

  二、使用步骤

  1.ibatis sql map 配置文件

  文件中对所用数据库的连接做了基本配置,包括数据库驱动类型、用户名、密码,以及连接池的相关管理数据.

  2.po和映射文件

  和hibernate一样,po作为数据库关系表的影射,也需要响应的映射配置文件,可以手写,也可以借助hibernate的相关工具生成po,不会影响po在ibatis中的使用.与hibernate不同的是,ibatis的映射文件中没有对po中每个属性做响应的描述,而是指定了一系列与po有关的sql相关操作,也体现了ibatis良好的灵活性与可扩展性.

  3.编写dao

  在dao中,可以使用sqlmapclient提供的方法来对应的指定对po操作的sql语句,从而使业务逻辑层的开发仍然是面向对象的操作.

  选择hibernate还是ibatis都有它的道理:

  特点对比

  hibernate的特点:

  hibernate功能强大,数据库无关性好,o/r映射能力强,如果你对hibernate相当精通,而且对hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽.以数据库字段一一对应映射得到的po和hibernte这种对象化映射得到的po是截然不同的,本质区别在于这种po是扁平化的,不像hibernate映射的po是可以表达立体的对象继承,聚合等等关系的,这将会直接影响到你的整个软件系统的设计思路. hibernate对数据库结构提供了较为完整的封装,hibernate的o/r mapping实现了pojo 和数据库表之间的映射,以及sql 的自动生成和执行.程序员往往只需定义好了pojo 到数据库表的映射关系,即可通过hibernate 提供的方法完成持久层操作.程序员甚至不需要对sql 的熟练掌握, hibernate/ojb 会根据制定的存储逻辑,自动生成对应的sql 并调用jdbc 接口加以执行.hibernate的缺点就是学习门槛不低,要精通门槛更高,而且怎么设计o/r映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好hibernate方面需要你的经验和能力都很强才行,但是hibernate现在已经是主流o/r mapping框架,从文档的丰富性,产品的完善性,版本的开发速度都要强于ibatis.

  ibatis的特点:

  ibatis入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的sql使用经验,对于没有那么高的对象模型要求的项目来说,相当完美.ibatis的缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改.当系统属于二次开发,无法对数据库结构做到控制和修改,那ibatis的灵活性将比 hibernate更适合.系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高度优化的sql语句(或存储过程)才能达到系统性能设计指标.在这种情况下ibatis会有更好的可控性和表现.

  对于实际的开发进行的比较:

  1. ibatis需要手写sql语句,也可以生成一部分,hibernate则基本上可以自动生成,偶尔会写一些hql.同样的需求,ibatis的工作量比 hibernate要大很多.类似的,如果涉及到数据库字段的修改,hibernate修改的地方很少,而ibatis要把那些sql mapping的地方一一修改.

  2. ibatis 可以进行细粒度的优化

  比如说我有一个表,这个表有几个或者几十个字段,我需要更新其中的一个字段,ibatis 很简单,执行一个sql update table_a set column_1=#column_1# where id=#id# 但是用 hibernate 的话就比较麻烦了,缺省的情况下 hibernate 会更新所有字段. 当然我记得 hibernate 有一个选项可以控制只保存修改过的字段,但是我不太确定这个功能的负面效果.

  例如:我需要列出一个表的部分内容,用 ibatis 的时候,这里面的好处是可以少从数据库读很多数据,节省流量select id, name from table_with_a_lot_of_column where ...一般情况下hibernate 会把所有的字段都选出来.比如说有一个上面表有8个字段,其中有一两个比较大的字段,varchar(255)/text.上面的场景中我为什么要把他们也选出来呢?用hibernate 的话,你又不能把这两个不需要的字段设置为lazy load,因为还有很多地方需要一次把整个 domain object 加载出来.这个时候就能显现出ibatis 的好处了.如果我需要更新一条记录(一个对象),如果使用 hibernate,需要现把对象 select 出来,然后再做 update.这对数据库来说就是两条sql.而ibatis只需要一条update的sql就可以了.减少一次与数据库的交互,对于性能的提升是非常重要.

  3. 开发方面:

  开发效率上,我觉得两者应该差不多.可维护性方面,我觉得 ibatis 更好一些.因为 ibatis 的 sql 都保存到单独的文件中.而 hibernate 在有些情况下可能会在 java 代码中保sql/hql.相对hibernate"o/r"而言,ibatis 是一种"sql mapping"的orm实现. 而ibatis 的着力点,则在于pojo 与sql之间的映射关系.也就是说,ibatis并不会为程序员在运行期自动生成sql 执行.具体的sql 需要程序员编写,然后通过映射配置文件,将sql所需的参数,以及返回的结果字段映射到指定pojo.使用ibatis 提供的orm机制,对业务逻辑实现人员而言,面对的是纯粹的java对象,这一层与通过hibernate 实现orm 而言基本一致,而对于具体的数据操作,hibernate会自动生成sql 语句,而ibatis 则要求开发者编写具体的sql 语句.相对hibernate而言,ibatis 以sql开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间.

  4. 运行效率

  在不考虑 cache 的情况下,ibatis 应该会比hibernate 快一些或者很多.

RK3588网卡出现丢包或者带宽不足的问题验证排查 注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。 阅读详情

相关推荐

ArcGIS插值可视化气象数据

前言 地图底图的制作和气象数据的预处理见我上两篇博客 ArcGIS精美中国地图制作(详解) python处理日值气象数据 在前面我们已经将日值的地温数据处理成了年均地温,添加了站点经纬度坐标并导出为excel格式。 得到如下数据: 导入数据 在Arcmap中 文件-添加XY数据 将年均地温和站点位置数据导入。 注意:excel表格的格式要另存为97-2003工作簿形式,否则会有"arcgi...

江北20190411的博客 2万+

hibernate与ibatis比较

hibernate和Ibatis比较 hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。 ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了。 相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。 hibernate对数据库结构提供了

ning109314的专栏 2644

告别手工AS91/AB01L:用BAPI_FIXEDASSET_OVRTAKE_CREATE实现SAP资产历史数据自动化迁移

本文详细解析了如何利用BAPI_FIXEDASSET_OVRTAKE_CREATE实现SAP资产历史数据的自动化迁移,替代传统手工操作如AS91/AB01L。通过核心参数解析、迁移逻辑说明及实战案例,帮助顾问团队提升资产和折旧数据迁移的效率与准确性,确保数据一致性并降低错误风险。

weixin_42524708的博客 418

Ibatis 和 Hibernate比较

ibatis:sql需要自己写 hibernate:sql自动生成 上面是最大的区别,下面是一些细节. 选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度

java实验室 773

UART全功能测试指南:环路/DMA/RS485/硬件流控实战

UART(通用异步收发器)是嵌入式系统中最基础的串行通信接口,其核心原理基于起始位、数据位、校验位与停止位的异步帧结构,依赖精确的波特率时钟同步与采样重建机制。在工业与物联网场景中,UART不仅需保障基本通信可靠性,更需支持DMA卸载、RS485半双工自动方向控制、RTS/CTS硬件流控等进阶能力,以提升实时性、抗干扰性与系统资源效率。典型应用涵盖调试日志输出、传感器数据采集、Modbus RTU总线通信及固件空中升级。本指南聚焦UART外设测试实践,覆盖环路自检、DMA吞吐验证、RS485时序对齐、硬件流

weixin_42599908的博客 133

SAP 资产主数据屏幕增强:对比字段追加与子屏幕/页签 2 种方案优劣

本文深入对比了SAP资产主数据(AS01/AS03)屏幕增强的两种方案:字段追加与子屏幕/页签。从技术实现、业务适配、系统维护等维度分析各自优劣,提供方案选型决策树和混合方案实践建议,帮助企业在SAP实施中做出最优选择。

weixin_28559803的博客 284

iBATIS、Hibernate、JPA 比较

iBATIS、Hibernate、JPA:谁最适合你? -ORM(对象关系映射)解决方案比较 作者: K. L.Nitin, Ananya S., Mahalakshmi K., and S.angeetha,  2008年7月15日发表于JavaWorld.com 原文地址:http://www.javaworld.com/javaworld/jw-07-2008/jw-07-orm-c

u012333307的专栏 1524

Altium Designer20-柔性PCB绘制技巧

Altium Designer2020-柔性PCB绘制技巧 注:教程所用PCB随意找的,并没有完全绘制完,大家学习PCB折弯方法即可。 1.打开PCB,点击视图->板子规划模式1,如下图所示 2.点击设计->定义分割线,用两条分割线绘出要折弯的区域 3.点击设计->定义弯曲线(弯曲线呈现黄色) 4.用快捷键d,k进入layer manage stack(层叠管理器),在f...

weixin_44450279的博客 1万+

Hibernate和iBATIS 优缺点比较

Hibernate和iBATIS 优缺点比较                分类:            Hibernate2011-10-18 13:592143人阅读评论(1)收藏举报 hibernateibatis数据库sql工作table http://wuhenjia.blog.163.com/blog/static/93469449201131491240754/

u013305082的专栏 442

3线SWD接线终极指南:用Jlink调试非3.3V设备的5个关键细节

本文详细解析了使用Jlink调试非3.3V设备时,3线SWD接线的5个关键细节。核心在于正确理解并连接Vref引脚以实现电压适配,避免供电冲突,并掌握精简接线法与固件修复技巧。文章以STM32F205等芯片为例,指导开发者安全、高效地进行混合电压调试。

e4f5g6h7的博客 437

GPU服务器维修全流程:从检测到解锁

《GPU服务器维修维保全流程指南》摘要:本文系统介绍GPU服务器从检测到解锁的完整维修流程。检测环节包含物理检查(氧化层、散热、PCB板)和电子诊断(ECC报错率、电源波动等);核心维修技术涵盖PCB板修复(微孔镀铜、BGA返修)和芯片级维修(成功率78-92%);解锁验证阶段包括性能解锁(VBIOS重写)和72小时稳定性测试。文末提供故障速查表及维保建议,强调定期除尘可降低38%故障率,推荐环境粉尘浓度控制在≤0.3mg/m³。

2401_89353317的博客 891

ibatis和hibernate的比较

 IBATIS:iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例,相对Hiber

我的JAVA人生 1万+

15、z/OS 优化配置与迁移实践

本文详细探讨了z/OS环境的优化配置与迁移实践,涵盖DASD存储库管理、用户目录更新、环境更新意义以及不同场景下的迁移案例。通过单笔记本系统和服务器级机器的实例,展示了迁移流程和关键要点,包括DASD文件创建、设备映射更新、系统重启初始化以及数据备份等步骤。文章还总结了迁移过程中的注意事项,并展望了未来z/OS优化的发展趋势,为z/OS系统的稳定运行和高效管理提供了实用指导。

zzz56的博客 129

hibernate和ibatis的比较

Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分了iBATIS 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目了。相对Hibernate“O/R”而言,iBATIS 是一种“Sql Mapping”的ORM实现。Hibernate对数据库结构提供了较为完整的封装,Hiberna

blue552288的专栏 361

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

hibernate和ibatis比较

可以从hibernate以及ibatis各自的特点,优缺点谈起,谈一些自己的认识,在没有特别说服力的情况下,你最好倾向于面试公司所采用的框架 IBATIS: iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架。 iBATIS提供的持久层框架包括SQ

728

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

iBatis vs Hibernate 比较

我在最初的选型的时候是打算选择 Hibernate 的,在研究的过程中发现了 iBatis,经过  分析比较之后我选择了 iBatis。现在我已经使用 iBatis 完成了一个中小型的项目。这个  项目在性能、可维护性、可扩展性方面都非常令我满意。  在这个过程中我也不断的与使用过或者正在使用 Hibernate 的人进行过探讨。而且我本身  也在不断的跟进 Hibernate

spy1403414807的专栏 651

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Hibernate与IBATIS比较

Hibernate的优点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。以数据库字段一一对应映射得到的PO和Hibernte这种对象化映射得到的PO是截然不同的,本质区别在于这种PO是扁平化的,不像Hibernate映射的PO

wm 377

Hibernate和iBatis比较

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

Magister_Feng的专栏 713

ibatis和Hibernate的比较浅析

ibatis简析,与hibernate的简单比较

u014548782的专栏 1110

Ibatis与Hibernate比较

本次项目的持久层用的是ibatis,也是一个持久层框架。之前一直接触的是Hibernate,两者都是很优秀的开源持久层产品。所以就不可避免的将两者比较一下了。   1.出身           hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。  ibatis 是另外一种优秀的o/r mapping框架,目前属于apa

在你最感兴趣的事物上,隐藏着你人生的秘密 1321

Hibernate与Ibatis比较

标签: hibernate和Ibatis比较 hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。 ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了。  相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。  hibernate

zongrongna的博客 5073

Hibernate和Ibatis区别和比较

hibernate与ibatis比较     hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了。 ibatis 是另外一种优秀的o/r mapping框架,目前属于apache的一个子项目了。  相对hibernate“o/r”而言,ibatis是一种“sql mapping”的orm实现。  hibernat

博客 2万+

iBatis与Hibernate比较

ibatis:sql需要自己写 hibernate:sql自动生成 上面是最大的区别,下面是一些细节. 选择Hibernate还是iBATIS都有它的道理: Hibernate的特点: Hibernate功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常

小苟的专栏 491
上一篇: javascript数组文章
下一篇: 关于java线程
java_lifei
博客等级 码龄17年 7粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值