背景
mybatis plus代码自动生成工具主要用于生产表的DO实体类,如果有十几张表,也是一键生成,可以提高开发效率。
引入依赖
说明:对于单体应用直接引入依赖到pom文件中即可,对于聚合工程的项目,如果每一个子module中都需要生成,可以考虑把依赖放在公共的common项目module中,然后所有的子module都引入我们都common项目。
<!-- 代码自动生成依赖 begin 上线不需要这个--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><!-- velocity --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><!-- 代码自动生成依赖 end-->
在需要的module中的test文件中编写MybatisPlusGenerator类,这里用user模块为例。
核心关注点:数据库的ip地址+用户名+密码;针对的是哪些表;生成文件的输出路径;groupid是什么(通常是公司域名反写)
public class MyBatisPlusGenerator {public static void main(String[] args) {//1. 全局配置GlobalConfig config = new GlobalConfig();// 是否支持AR模式config.setActiveRecord(true)// 作者.setAuthor("liangmerlin")// 生成路径,最好使用绝对路径,window路径是不一样的//TODO TODO TODO TODO.setOutputDir("/Users/lianglin/Desktop/demo/src/main/java")// 文件覆盖.setFileOverride(true)// 主键策略.setIdType(IdType.AUTO).setDateType(DateType.ONLY_DATE)// 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的.setServiceName("%sService")//实体类结尾名称.setEntityName("%sDO")//生成基本的resultMap.setBaseResultMap(true)//不使用AR模式.setActiveRecord(false)//生成基本的SQL片段.setBaseColumnList(true);//2. 数据源配置DataSourceConfig dsConfig = new DataSourceConfig();// 设置数据库类型dsConfig.setDbType(DbType.MYSQL).setDriverName("com.mysql.cj.jdbc.Driver")//TODO TODO TODO TODO.setUrl("jdbc:mysql://127.0.0.1:3306/xdclass_user?useSSL=false").setUsername("root").setPassword("lianglin-hahaxxxyy");//3. 策略配置globalConfiguration中StrategyConfig stConfig = new StrategyConfig();//全局大写命名stConfig.setCapitalMode(true)// 数据库表映射到实体的命名策略.setNaming(NamingStrategy.underline_to_camel)//使用lombok.setEntityLombokModel(true)//使用restcontroller注解.setRestControllerStyle(true)// 生成的表, 支持多表一起生成,以数组形式填写//TODO TODO TODO TODO 两个方式,直接写,或者使用命令行输入.setInclude("user","address");//.setInclude(scanner("表名,多个英文逗号分割").split(","));//4. 包名策略配置PackageConfig pkConfig = new PackageConfig();//TODO TODO TODO TODO setParent需要设置自己的项目groupIdpkConfig.setParent("org.example").setMapper("mapper").setService("service").setController("controller").setEntity("model").setXml("mapper");//5. 整合配置AutoGenerator ag = new AutoGenerator();ag.setGlobalConfig(config).setDataSource(dsConfig).setStrategy(stConfig).setPackageInfo(pkConfig);//6. 执行操作ag.execute();System.out.println("======= 小滴课堂 Done 相关代码生成完毕 ========");}/*** <p>* 读取控制台内容* </p>*/public static String scanner(String tip) {Scanner scanner = new Scanner(System.in);StringBuilder help = new StringBuilder();help.append("请输入" + tip + ":");System.out.println(help.toString());if (scanner.hasNext()) {String ipt = scanner.next();if (StringUtils.isNotBlank(ipt)) {return ipt;}}throw new MybatisPlusException("请输入正确的" + tip + "!");}}
运行main方法,然后把代码拷贝到对应的项目文件夹中
这里我们只关注controller-dao-mapper的代码,service代码我们自己编写。
生成以后数据库中的每一张表都会自动生成其对应的controller,mapper,dao,xml

leetcode算法训练营春节福利价,截止到1月31日23:00结束,年度最低价,想参加的快快报名啦。
算法vip班永久学习班,错过将再等一年。
奔跑的小梁,公众号:梁霖编程工具库算法训练营春节超低优惠价通知,错过这次再等一年!!!
文章转载自梁霖编程工具库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




