java开发,虽然名义上叫做面向对象开发,但实际开发过程中,主要就是面向数据库开发。对于一个程序员而言,最常做的事情,就是crud。

crud肯定是所有开发中最基础的,虽然很多人经常吐槽,面试的时候造火箭,等入职了实际干的就是拧螺丝的活。但其实复杂的业务场景,往往就是由最基础的crud构成的。

遇到复杂的业务场景,就需要写非常复杂的sql语句。而复杂的sql语句往往涉及到多表的联查,而多表的联差往往会产生笛卡尔积的现象。

所以,sql语句对于很多人来说,确实是一个大难题,因为这东西不像写代码那样,可以直接看清逻辑关系,sql语句的写法简直毫无逻辑可言。

而且,sql语句往往都是写在xml文件里的,对于一个java程序员来说,自己最熟悉最擅长的肯定是写java代码,往往很不愿意写xml代码。

支持自定义通用通用操作:支持通用通用方法注入(写一次,可在任何地方使用)内置代码生成器:

采用代码或Maven插件可快速生成Mapper,Model,Service,Controller层代码,支持模板引擎,甚至超多自定义配置等您来使用内置分页插件:基于MyBatis物理分页,开发者无需关心特定操作,配置好插件之后,写分页等同于普通列表查询分页插件支持多种数据库:支持MySQL,MariaDB,Oracle,DB2,H2,HSQL,SQLite,Postgre,SQLServer等多种数据库

内置性能分析插件:可输出Sql语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询内置的拦截插件:提供全表delete,update操作智能分析中断,也可自定义拦截规则,预防误操作。

过度依赖工具的结果就是自己最后啥都不会了,所有的精力都放在学习工具上了。这样算来,掌握最基础,但不依赖工具的做法,看似低效,但在任何场景下都可以复用,这样反而是最高效的。

比如心算,既然有计算器了,还有必要会心算吗?当然需要,因为工具种类不同,不同工具的计算方法也不同,因为很多实际应用的计算场景,计算器又模拟不了。简言之,mybatis-plus应对传统三层(或者加一层facade作四层)架构是完全没问题的,但对领域驱动却并不友好。