前言

郭胜凯2025/11/21

一个想法

这个项目不是我的一时兴起,而是源于我在实际工作中对Mybatis框架的深刻理解和长期积累的经验。Smart Mybatis旨在解决传统Mybatis在使用过程中遇到的一些痛点和挑战,提升开发效率和代码质量。

在实际工作中, 我发现许多开发者在使用Mybatis时,常常需要编写大量重复的代码来处理数据库操作. 即使这些重复工作可以使用代码生成(实际上很多人也这么做), 但带来的就是后期迭代成本增加, 冗余代码太多, 还容易引入错误。

于是我常常在想, 这些可生成的、重复的工作是否可以通过框架本身来解决?是否可以让开发者专注于业务逻辑,而不是被繁琐的数据库操作所困扰?

一个实验

于是, 我写了第一个实验性的框架(EasyMybatisopen in new window) . 准确的说, 当时还不叫EasyMybatis, 甚至不是一个框架, 而是一个没有命名的脚手架, 用来封装了Mybatis通用的增删改查的操作(就像ruoyi一样, 需要将脚手架克隆下来再在这个基础上去使用)

当时我把核心思路写成了博客文章分享给大家. 结果出乎意料, 这个想法受到了很多开发者的讨论。

当时还没有SpringBoot, 大家还是在使用XML配置Mybatis. 很多开发者留言说, 他们也遇到了类似的问题, 希望能有一个更简洁的方式来使用Mybatis.

同时这让我意识到, 这个问题确实是很多开发者共同面临的挑战。于是我决定继续深入研究, 并最抽象出了EasyMybatis这个实验性的框架。

EasyMybatis通过注解和配置的方式, 大大简化了数据库操作的代码量, 提升了开发效率. 它不仅支持自动生成SQL语句, 还提供了丰富的功能来满足不同的业务需求, 但这些也仅仅是实验性的。

一个现象

随着时间的推移, Spring Boot横空出世, 并迅速成为Java生态系统中的主流框架. 这为Mybatis的使用带来了新的机遇和挑战.

随后, Mybatis支持了Provider生成SQL语句, 这使得我们可以通过代码动态生成SQL, 进一步减少了XML配置的使用. EasyMybatis 反而变得不那么必要了.

我转向了Spring Boot生态, 并开始探索如何将MybatisSpring Boot更好地集成. 这期间我发现了一个很多优秀的项目, 例如Mybatis-Plus, 它们在简化Mybatis使用方面做得非常出色. 于是, 在很长一段时间里, 我主要使用这些成熟的解决方案来满足我的开发需求。

一个决定

然而, 随着项目需求的不断变化, 我逐渐发现现有的解决方案在某些方面仍然存在不足. 在一些特定场景下, 我需要拿到更底层的控制权, 以便实现更复杂的业务逻辑.

于是, 我决定重新审视Mybatis的使用方式, 并基于我之前的经验和积累, 开发一个全新的框架——Smart Mybatis. 在交互上, 我借鉴了Mybatis-Plus的一些优秀设计, 但在实现上, 它更加注重灵活性和可扩展性.

这是一个全新的开始, 但它并不是简单地重复过去的工作. 相反, 它融合了我多年来对Mybatis的理解, 以及对现代Java开发需求的洞察.

Smart Mybatis 旨在提供一个更轻量级、更灵活的解决方案, 让开发者能够更高效地使用Mybatis, 同时保留对底层细节的控制权.

更轻量不仅仅是指代码量的减少, 更重要的是思维方式的转变. 事实上, Mybatis本身已经足够优秀了, 我们不需要再去重新发明轮子, 而是要学会如何更聪明地使用它, 让它的特性转换为开发的效率.

指南结构

在本指南中,您将学习到如何配置和使用Smart Mybatis的各种功能,包括但不限于:

  • 自动同步数据库结构
  • 主键生成策略
  • 自定义字段映射
  • 对象字段存储
  • 高级查询技巧
  • 性能优化方法
  • 集成与扩展
  • 常见问题解答
  • 最佳实践

我们建议您按照章节顺序阅读,以便系统地掌握Smart Mybatis的各项功能。同时,您也可以根据需要跳转到特定章节,查找相关信息。

无论您在使用过程中遇到任何问题,欢迎随时访问我们的仓库或查看官方文档获取帮助。我们期待您的反馈和建议,以便不断改进和完善Smart Mybatis框架。

声明

最后, 我必须要明确一点, Smart Mybatis 并不是作者的炫技, 也不是为了展示某种设计模式而生的框架.

它只是充分的利用了现有框架的成熟特性, 以一种更聪明的方式来使用它们, 让开发者能够重新聚焦足够优秀的Mybatis本身。