servlet面试题 有关ssh框架的面试题 — ibatis与hibernate有什么区别
有关ssh框架的面试题 — ibatis与hibernate有什么区别
iBatis的sql语句需要自己手动写 而Hibernate能够在程序运行时自动生成 但是不要就这样以为Hibernate比iBatis方便 其 实二者熟悉之后的效率差不多 而Hibernate还能够自动建表等等 这样的好处就在于你带着这个程序 无论到什么机器上 你都不需要数据库 应为它能 自动为你完成 而iBatis就必须要有相应的数据库表才能进行移植 Hibernate的特点 Hibernate功能强大 数据库无关 性好 O/R(对象/关系)映射能力强 如果你对Hibernate相当精通 而且对Hibernate进行了适当的封装 那么你的项目整个持久层代码会 相当简单 需要写的代码很少 开发速度很快 非常爽 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会有更好的可控性和表现 现在就市场来说 Hibernate的需求要大于iBatis的需求 而Hibernate对个人能力的要求更高 即使公司使用iBatis 你在Hibernate的基础上也能快速掌握
总结: 面试的时候 从这两个地方想 在考虑性能问题时 用哪个更好? 在做大型项目室 用哪个更好? 依据这两个问题来回答 基本这题肯定就过关了

lishixinzhi/Article/program/Java/ky/201405/30839