当前位置: 首页 > 面试题库 >

休眠与iBATIS对比

东龙野
2023-03-14
问题内容

为了重新设计新产品,我们正在从Java中选择最佳框架。由于考虑使用模型的数据库不可知方法,因此我们正在研究iBATIS或Hibernate在Struts +Spring之间的选项。请提出建议,因为两者都可以提供持久性。


问题答案:

Ibatis和Hibernate是完全不同的野兽。

我倾向于这样看待它:如果您的视图以 对象为中心, 则Hibernate会更好地工作。但是,如果您认为以 数据库为中心,
那么Ibatis是一个更强大的选择。

如果您完全控制模式,并且对吞吐量没有很高的要求,那么Hibernate可以很好地工作。对象模型使得用于还算方便代码,但在 巨大的 复杂性成本。

如果您要处理“旧式”数据库架构,需要编写相当复杂的SQL查询,那么Ibatis可能会更好地工作。

HQL(休眠查询语言)是您必须学习的另一种语言,即使那样,您可能 仍会 发现 仍然
需要编写SQL的情况。而且,您可能会花半天的时间弄清楚XML,属性,注释等的正确组合,以使Hibernate生成高效的SQL查询。

对于此问题,没有通用的“ A优于B”答案。



 类似资料:
  • 问题内容: 对于新产品的重新设计,我们正在从Java中选择最佳框架。由于考虑使用模型的数据库不可知方法,因此我们正在研究Struts +Spring与iBATIS或Hibernate之间的选项。请提供最好的建议,因为两者都可以提供持久性。 问题答案: Ibatis和Hibernate是完全不同的野兽。 我倾向于这样看:如果您的视图以 对象为中心, 则Hibernate会更好地工作。但是,如果您认为

  • 休眠与唤醒 [HW,ACPI] acpi_sleep={s3_bios,s3_mode,s3_beep,s4_nohwsig,old_ordering,nonvs,sci_force_enable} ACPI休眠选项。 (1)s3_bios和s3_mode与显卡有关。计算机从S3状态(挂起到内存)恢复时,硬件需要被正确的初始化。这对大多数硬件都不是问题,但因为显 卡是由BIOS初始化的,内核无法获

  • 问题内容: 我们知道有机管局非常好的功能SaveOrUpdate当我们通过任何物体这种方法,知道数据是或新的记录将在数据库中添加。这是功能同时有或在我的代码,我来处理呢? 问题答案: jOOQ也是一样。如果更改记录的主键,则它将使用,否则将使用。 实际上,当您从数据库中读取记录时,调用将触发您所期望的。如果创建新记录,则将对其进行编辑。 在2.6中,克隆记录然后要求jOOQ对其进行更新有些困难(因

  • 问题内容: 我在某些文章中读到,在hibernate状态下DAO不是强制性的,其实现是“取决于”的,换句话说,我们可以在ORM与DAO模式之间进行选择。 好的,假设我不想使用DAO模式,所以我只使用了由hibernate(my ORM)提供的会话CRUD和查询操作。 特别是对于“搜索”和“查找”查询而言,始终重写它们是不正确的,因此将它们放入一个类是合理的想法。 但是,此类是一个简单的DAO,而没

  • 问题内容: 我有一个hibernate映射,该映射一直工作到最近-尽管我确定这是我所做的某些更改的结果,但我似乎找不到它。 映射文件将字段定义为: 该类将该字段定义为: 运行此代码时,出现以下错误: 与此对应的数据库字段定义为: 我还有其他几个具有相似结构和定义的类,并且它们没有问题。但是,可能由于我最近所做的一些更改而导致,此特定映射将不再正常工作。 有什么建议么? 问题答案: 我不确定,但是您

  • 问题内容: 我收到了一个我无法解释的奇怪的Hibernate异常。告诉我我正在使用二级缓存,但是没有在哪里指定二级缓存。这是例外: 而我的: 有什么想法会触发此异常吗?提前致谢! 问题答案: Pau在hibernate.cfg.xml中写了hibernate.cache.region.factory_class: 唯一的例外是不言而喻的。您必须设置 属性。例如,使用ehcache将添加以下行: n