Java 与普通JDBC相比,MyBatis提供了哪些好处
我需要编写非常直接的DB代码,我正在考虑MyBatis而不是普通的JDBC(我认为完整的ORM是一种过分的技巧) 考虑到在MyBatis和普通JDBC中,您会发现自己:Java 与普通JDBC相比,MyBatis提供了哪些好处,java,sql,jdbc,ibatis,mybatis,Java,Sql,Jdbc,Ibatis,Mybatis,我需要编写非常直接的DB代码,我正在考虑MyBatis而不是普通的JDBC(我认为完整的ORM是一种过分的技巧) 考虑到在MyBatis和普通JDBC中,您会发现自己: 手工编写SQL语句 手动将DB行连接到JAVA DTO对象(通过代码或配置) 据我所知,MyBatis相对于JDBC的优势是: 现成的表/查询缓存 动态SQL SQL存储在代码之外 模板化SQL以简化数据库供应商独立性 强>其他JDBC好处的MybATIs需要考虑什么?< /强> < P>我不知道你会把这个看作是优势还是不存在
<>强>其他JDBC好处的MybATIs需要考虑什么?< /强> < P>我不知道你会把这个看作是优势还是不存在,但是它生成了所有基本需要的查询加上一些高级查询和基于单个XML文件的DTO对象自动。
另外,它也有相同的功能。大多数情况下,您不需要将显式列映射到POJO,因此项目符号2是一个差异,而不是一个相似性 IMHO的主要区别在于MyBatis中的API比JDBC中的API简单得多。如果与Spring或Guice一起使用,则根本不需要在代码中调用MyBatis API
映射器和注入对测试有很大帮助,因为映射器是易于模拟的普通接口。关于:“手动将DB行连接到JAVA DTO对象(通过代码或配置)。” 这并不是完全正确的,如果使用约定,您可以获得从DB表到Java类的自动映射,例如,您有一个CUSTOMER表,其中包含ID、COMPANY\u NAME、PHONE\u NUMBER等字段,以及一个Java类CUSTOMER,其属性为ID、companyName和phoneNumber,MyBatis足够聪明,可以计算DB到camel案例的约定,不需要您进行映射。太好了
- MyBatis需要更少的代码,并且比普通的JDBC编码更干净
- MyBatis支持命名参数,JDBC只支持占位符?(ugg!)
- 只需一行代码,您就可以从重用准备语句模式更改为Bath模式,在普通的JDBC中,您需要重写代码