mybatis的好帮手---通用mapper(一)

779 阅读2分钟
面向sql语言的mybatis最大的优点就是灵活,通过简单的配置之后,你只需要编写sql语句就可以了。但是mybatis不支持jpa,这个时候通用mapper就诞生了,能够自动生成几乎所有针对单表的操作,实际开发中,能够减少很多重复的操作。注意,通用mapper只能生成单表的CRUD。如果你要做多表操作的话,依然需要手写sql。

这里,我使用springboot项目演示"通用mapper"

pom文件如下

这里我是用springboot2.1.2版本,通用mapper2.1.4版本




lombok,只需要一个注解就可以优雅的实现getter和setter,大力推荐



数据



接下来就是springboot的配置文件,配置mybaits和通用mapper,这里我使用的是yml格式

mybaits的实体类路径已经mapper配置,这里不多做解释,主要是通用mapper的配置,首先我们需要一个通用dao接口,然后让所有的其他所有的接口去继承这个通用接口,这样就会自动生成单表的CURD语句,下图标红是因为这个通用接口我还没有创建。



创建通用接口CommonMapper,这里必须继承Mapper已经MySqlMapper这两个接口,之后其他的所有mybatis接口只要继承此接口都会自动生成对应的CRUD方法。



接下来创建User对应的pojo类,@Data 这个是lombok的注解,减少getter,setter,toString的编写,使你的实体类不会显得臃肿,@Table(name = "")这里填写对应的数据库表名,@KeySql(userGeneratedKeys = true)这个可以使得保存的数据返回生成的主键,实际开发中很实用。注意,下图有一个noWord属性,在之前给大家展示的表中,并没有此字段,为什么我会弄呢,因为实际开发中有可能,你这个实体类还带有其它对应表没有的数据,如果你不添加@Transient注解会报错,这个注解能够略去对应的属性字段(PS:我在这上面吃过不小的亏emmmmm)



dao层代码,这里就需要继承之前的通用工具CommonMapper,其中的User对应的就是这个dao数据操作实体类。



controller层如下图



最重要的service层,如下图,我们看到userDao.selectAll()这个方法就是自动生成的


我们看下程序运行的结果,后端输出



看到这里是不是觉得很轻松,这个只是自动生成的方法中的一个,如下图,大家可以根据需求自行选择需要用的方法。



最后,这个框架是国人开发的,源码注释一看就懂,例如selectAll()方法



简单的用法配置等暂时介绍到这里,下一篇会为大家带来通用mapper的高级用法,如何排序,如何条件查询。。。