ibatis 不使用自动生成原生sql的原因

方便优化,尤其是复杂的连接或者嵌套查询,可以采用很多sql优化方法
■网友
当你到网站大到一定规模的时候,对于性能有要求的时候,你就会特别care sql的执行效率。DBA天天在数据库上面抓一批sql给你来找问题优化的时候,你就会非常的希望有个地方可以有所有的sql。 sql 与 应用分离的好处就是在你需要优化的时候能够很轻松的查找到对应的功能,并且可以在功能上线前做到sql review,让专业的人士去帮你优化sql,减轻应用程序员的负担。自动生成sql的工具例如hibernate,可能会让你看很久,当然如果你是用jdbcTemplate来做是另当别论。 ++++++++ 当然这个答案不是用来解答为什么“ibatis 不使用自动生成原生sql的原因”,而是用来解答为什么很多公司会选择ibatis来做持久化层的工具。
■网友
写了个intellij插件可以生成大部分单表的sql,可以看看https://github.com/gejun123456/MyBatisCodeHelper
■网友
举一个实际的例子给你,mysql也用cbo做sql优化器,可它的优化又是会莫名其妙,如果你用hibernater的hql之类的来做查,就算设置showsql参数,拿到sql语句最后也只能用原生jdbc来搞定,但ibatis把sql分离,可以和数据库更好的融合
■网友
这就是手工和自动之间的取舍问题吧~~各有利弊~~
■网友
简单的是不难的,但是,举个简单下例子,想象一下子查询的子查询又合并之类的操作,哪个 自动映射方便做到? 这个就像封装一样,封装的越多,在实现其“经典”的范围内是很方便的,但如果不是,就痛苦了
■网友
本身定位就是轻量化的框架。各种框架各有利弊,看项目类型选择。
■网友
如果ibatis也是你说所得对象映射,或许现在就不会这样被大多数人所熟知,因为对象映射这方面hibernate已经做到够好~sql是他的选择....(跪着也得走完 = =)


    推荐阅读