设计哲学与致歉
这个工具可能会引发一些哲学问题,因为该工具更注重数据库表而不是域模型。 我们将采取几段谈论这种方法。 首先,这个工具可以做到这一点。 我们没有就项目应该或不应该结构化做出任何形式的陈述。 一般来说,我们是富有领域模型的坚强支持者 - 但创建一个丰富的领域模型与回答这个模式应该如何坚持的问题是截然不同的。 如果您的特定设计理念是域模型驱动所有决策,并且数据库设计服从于域模型,则此工具 - 和MyBatis本身 - 可能不适合您的应用程序。 在这种情况下,我们建议认真观察Hibernate - 它可能更符合您的应用设计和理念。
但并不是所有的项目都符合这个范例。 真正的企业级应用程序很少。 MyBatis可以在数据库设计被视为与域对象设计相同的项目中获得巨大的帮助。 MyBatis不是一个对象关系映射器,并不会透明地持久化对象。 因此,应用程序开发人员编写SQL以与数据库表进行交互。 在大型或企业级项目中,许多因素很常见:
- 数据库设计通常是与OO域设计的独立功能(独立管理)
- 数据库设计师没有OO工具(如继承),所以他们不以OO的方式思考
- 应用程序设计人员无法完全控制数据库表的最终形式。例如,似乎适合应用程序的一个对象的数据可能会被拆分成数据库中的几个表。
- 数据库设计通常与OO设计完全不同,导致表和对象之间的显着不匹配。
- 随着数据表的更改,代码可以快速重新生成
- 可以根据需要修改服务方法
- 应用程序中的较高层保持不变
相关阅读:
MyBatis Generator (MBG) 代码生成器简介
MyBatis Generator 代码生成器 快速入门指南
MyBatis Generator XML 配置文件参考
运行 MyBatis Generator 后的任务
运行MyBatis Generator
MyBatis Generator中的新功能
SSM框架——使用 MyBatis Generator 生成代码,包括:Model、Dao、Mapping
从源码构建
扩展MyBatis生成器
实现插件日志信息
提供的插件