首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MyBatis与普通JDBC相比有什么好处?

MyBatis与普通JDBC相比有什么好处?
EN

Stack Overflow用户
提问于 2012-04-24 06:52:58
回答 3查看 8.6K关注 0票数 7

我需要直接编写DB代码,并且我正在考虑MyBatis而不是普通的JDBC (我认为完全ORM是一种过度使用)。

考虑到在MyBatis和普通JDBC中,您发现自己:

  1. 手动编写SQL语句。
  2. 手动将DB行连接到JAVA对象(通过代码或配置)。

我所知道的MyBatis相对于JDBC的好处是:

  1. 开箱即用表/查询缓存。
  2. 动态SQL
  3. SQL存储在代码之外。
  4. 为更容易的DB供应商独立性模板SQL。

还有哪些其他的What超过JDBC的好处需要考虑吗?

EN

回答 3

Stack Overflow用户

发布于 2012-06-09 08:58:58

我不知道您是否会认为这是优势,但有MyBatisGenerator,它生成所有基本需要的查询,加上一些高级查询和DTO对象自动基于单个XML文件。

另外,它也有相同的Eclipse插件

票数 3
EN

Stack Overflow用户

发布于 2012-06-23 15:19:12

大多数情况下,您不需要将可解释的列映射到pojos,因此符号2是区别而不是相似之处。

IMHO的主要区别是在MyBatis中比在JDBC中简单得多的API。如果与Spring或Guice一起使用,则根本不需要在代码中调用MyBatis API。

映射器和注入非常有助于测试,因为映射器是很容易模拟的简单接口。

票数 2
EN

Stack Overflow用户

发布于 2014-05-26 02:28:55

关于:“手动将DB行连接到JAVA对象(通过代码或配置)。”这不是完全正确的,如果您使用约定,您可以获得从DB表到Java类的自动映射,例如,您有一个拥有ID、COMPANY_NAME、PHONE_NUMBER等字段的客户表,以及一个具有属性id、companyName和phoneNumber的Java类客户,MyBatis足够聪明地将DB配置为camel case约定,并且不需要您进行映射。太棒了!

  • MyBatis需要更少的代码,并且比普通JDBC编码更干净。
  • MyBatis支持命名参数,JDBC只支持占位符?(乌格!)
  • 使用单行,您可以从重用准备语句模式更改为Bath模式,在普通JDBC中,它将对代码进行重写。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10293061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档