71
回答
高手问答第 165 期 —— 资深 Java 工程师带你解读 MyBatis
终于搞明白,存储TCO原来是这样算的>>>   

OSCHINA 本期高手问答(2017 年 8 月 9 日 — 8 月 15 日)我们请来了@Liuzh_533 刘增辉为大家解答关于 MyBatis 方面的问题。

刘增辉,资深 Java 工程师,热爱技术研究,乐于分享心得,活跃于 CSDN 和技术前沿网社区。对 MyBatis 源码有着深入研究,同时热衷于开源项目,在 GitHub 和技术前沿网社区上发布了多个开源项目,是 MyBatis 官方推荐的分页插件 PageHelper 和通用 Mapper 的作者,所发布项目受到了数千人的关注。

MyBatis 的前身是 iBATIS,它以接近 JDBC 的性能优雅地实现 Java 代码与 SQL 语句的分离,让开发者将数据操作专注点转移到 SQL 语句上,进而使代码维护变得更加容易。历经 10 多年的发展,MyBatis 日臻成熟,现已成为 Java 持久化框架中的佼佼者被广泛应用。但是 MyBatis 也有一些不完美的地方,例如物理分页问题、缓存问题,对于这些问题,作者在《MyBatis从入门到精通》一书中给出了自己的解决方案。

本期问答内容:

  1. MyBatis基本用法
  2. MyBatis插件开发
  3. MyBatis缓存配置
  4. MyBatis分页插件
  5. 通用Mapper

或有其他关于 MyBatis 的问题,也欢迎大家积极提问。

为了鼓励踊跃提问,@博文视点 会在问答结束后从提问者中抽取 5 名幸运会员赠与《MyBatis从入门到精通》一书。

购买链接:https://item.jd.com/12103309.html

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 MyBatis 方面问题向@Liuzh_533 刘增辉提问,请直接回帖提问。

共有71个答案 最后回答: 2周前

我最关心的是SQL重用问题,在mybatis中写SQL毕竟是种拼接字符串的东西,又想提高重用性,又想做好正确拼接,特别吃力,往往到了后期会有散落的复制SQL片段出现在各处,大大提高了出bug概率和维护改动难度,随着项目复杂度上升,开发耗在SQL上的时间占比会比早期提升很多,以至于到了后面改功能几乎就是在想办法改掉一切相关SQL,还要避免出问题。真正的java代码不用写几句。

@Liuzh_533  挺喜欢mybatis,但是如果数据库有变动维护xml将是一件很麻烦的事,在上个项目中使用spring boot 集成了通用Mapper,感觉单表操作很方便,但是我现在更多的是使用dbutils

@Liuzh_533 需要对一些敏感信息进行加密处理 使用mybatis的typehandler 可以实现这个功能 (查询的时候解密,inser他的时候加密) 但是使用 tkmybatis 的时候由于xml中没有 相关的sql了 无法配置 typehandler 了  有啥比较好的解决方法吗

 

我来说一句,mybatis 的缓存控制粒度不比 hibernate,后者可以控制到某一个实体的缓存更新,而前者遇到刷新缓存的控制就像雪崩式全部清除。

@Liuzh_533 网上有人认为:使用hibernate、mybatis这种orm框架,还是影响了效率还不如使用apache 的dbutils,您怎么看这种观点?

--- 共有 1 条评论 ---
Liuzh_533和dbutils项目只是多了一层自动的参数和结果映射,dbutils如果纯手动get,set执行效率确实高,但是开发效率很低。 1个月前 回复
顶部