primo-generator-mybatis-plus-maven-plugin
自动生成代码插件,通过Maven插件配置,一键生成单表的所有CRUD操作,加速你的业务开发
持久层基于Mybatis-Plus
主要功能
- 单表增删改查
- 单表的条件查询,分页查询
- 基于druid,数据库监控
- 统一查询条件模型
- 统一controller层模型
注意,必须要修改的点:
- 其中的父类包名修改为自己需要的包名
- 数据源的配置,连接、账号、密码
其他的一些配置项,按照自己的需要进行配置。
插件依赖
<plugin><groupId>wiki.primo.generator</groupId><artifactId>primo-generator-mybatis-plus-maven-plugin</artifactId><version>1.0.0-SNAPSHOT</version> <configuration><!-- 输出目录(默认java.io.tmpdir) ,项目路径下--><outputDir>src/main/java/</outputDir><!-- 是否覆盖同名文件(默认false) --><fileOverride>true</fileOverride><!-- mapper.xml 中添加二级缓存配置(默认true) --><enableCache>true</enableCache><!-- 开发者名称 --><author>chenhx</author><!-- 是否开启 ActiveRecord 模式(默认true) --><activeRecord>false</activeRecord><!--query.open 此配置数据在0.0.5版本已经进行删除--><query><!-- 是否开启 条件分页查询以及相关类生成 --><open>true</open></query><!-- 数据源配置,( **必配** ) --><dataSource><driverName>com.mysql.jdbc.Driver</driverName><url>jdbc:mysql://127.0.0.1:3306/love?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2B8</url><username>root</username><password>12345678</password></dataSource><strategy><!-- 字段生成策略,四种类型,从名称就能看出来含义: nochange(默认), underline_to_camel,(下划线转驼峰) remove_prefix,(去除前缀,后面保持不变) remove_prefix_and_camel(去除前缀,后面转驼峰) --><naming>underline_to_camel</naming><!-- 表前缀 --><tablePrefix> </tablePrefix><!--Entity中的ID生成策略(默认 id_worker)AUTO - 自动--><idGenType>auto</idGenType><!--自定义超类--><!--<superServiceClass>com.baomidou.base.BaseService</superServiceClass>--><!-- include(包含) 与exclude(排除) 二选一配置 可以都不进行配置,则默认生成数据库下全部的表 --><include><property>user</property><!-- <property>table1</property>--></include><!-- 要排除的表 --><!--<exclude>--><!--<property>schema_version</property>--><!--</exclude>--></strategy><packageInfo><!-- 父级包名称,如果不写,下面的service等就需要写全包名(默认com.baomidou) --><parent>wiki.primo.generator.mybatis.plus.springbootdemo</parent><!--service包名(默认service)--><service>service</service><!--serviceImpl包名(默认service.impl)--><serviceImpl>service.impl</serviceImpl><!--entity包名(默认entity)--><entity>entity</entity><!--mapper包名(默认mapper)--><mapper>mapper</mapper><!--xml包名(默认mapper.xml)--><xml>mapper.xml</xml><query>query</query></packageInfo><!--模板路径配置项--><template><!-- 定义controller模板的路径 --><!--<controller>/template/controller1.java.vm</controller>--></template></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency></dependencies></plugin>复制代码其他运行项目必备的配置
当添加插件依赖后,已经可以运行项目生成的代码了。
但是运行项目,会报错,那么进行下面几步后,可以解决。
一 添加依赖
必备的jar包依赖,版本请自行控制
<!--Spring Boot web依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis-plus依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency><!--druid依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.14</version></dependency><!--MySQL JDBC驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency>复制代码
二 扫描Mapper
在@SpringBootApplication注解的启动类上加入
//第二步:扫描mapper@MapperScan("你mapper接口所在的包名")复制代码
三 mybati plus配置
##mybatis-plus mapper xml 文件地址mybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml##mybatis-plus type-aliases 文件地址mybatis-plus.type-aliases-package=entity实体类的包名(例:wiki.primo.generator.mybatis.plus.springbootdemo.entity)# 驼峰下划线转换mybatis-plus.configuration.map-underscore-to-camel-case=true# 配置的缓存的全局开关mybatis-plus.configuration.cache-enabled=true# 延时加载的开关mybatis-plus.configuration.lazy-loading-enabled=true复制代码
四 其他
数据源配置、druid监控配置以及其他的配置,请查看演示项目下的application.properties文件
后续若有其他功能,会及时更新演示项目的配置
使用演示primo-generator-maven-plugin-spring-boot-demo
springboot项目使用primo-generator-maven-plugin演示
可以看到,这个项目下目前是没有类的
在项目的pom文件中开始进行添加插件的依赖(如果是子模块,在子模块的pom中添加)
我在这里只配置了一个表user进行生成
<!-- include(包含) 与exclude(排除) 二选一配置 可以都不进行配置,则默认生成数据库下全部的表 --><include><property>user</property></include>复制代码
当配置项都配置好之后,就可以运行了。
有两种方式运行: (1)IDEA可以直接在Maven视图中双击运行
(2)也可以通过命令行执行:
mvn -DskipTests=true wiki.primo.generator:primo-generator-mybatis-plus-maven-plugin:code复制代码
执行完成后,可以看到如下的代码生成
若生成后,有报错,请查看必备的配置,看看依赖和mapper扫描是否添加。
版本更新说明请使用最新版本,从1.0.0-SNAPSHOT开始上传到中央仓库
1.0.0-SNAPSHOT
- 删除query.open开关的配置,强制开启条件分页查询以及相关类生成
- 将一些配置的数据进行通用的一个抽取,方便后期进行扩展类
- druid管理HTML页面上的“Reset All”功能开启
0.0.4
- service层与controller层的page接口,页数与数量参数分离
- QueryBo类分离查询条件属性,避免与数据库表列名一致导致异常
- service层增加通过QueryWrapper查询的分页接口
- service层增加单一数据的返回查询接口
- 实体类生成toString方法
- service层增加修改接口
- 分页500的限制放开
- service层增加根据一列的条件修改实体接口
- service层增加list查询接口
0.0.3
- 增加controller层的增删改查操作
- 增加ResultModel的自动生成
- 增加ResultCodeEnum的自动生成
- 增加MybatisPlusConfig的自动生成
- 支持配置的表生成,或者排除表生成代码
0.0.2
- 生成Query类,根据查询条件分页查询。支持配置是否生成分页查询方法
<query> <!-- 是否开启 条件分页查询以及相关类生成 --> <open>true</open> </query>复制代码
0.0.1
- 仅支持单库全表生成
- 支持设置entityColumnConstant,控制是否启用属性常量,默认开启
- 自动给列名加上``关键字转义符
- 跳过已经存在的文件,fileOverride
- 支持单表/全库表生成配置,include
有什么问题,或者有什么其他的功能需求,欢迎提出