软件编程
位置:首页>> 软件编程>> java编程>> MybatisPlus使用代码生成器遇到的小问题(推荐)

MybatisPlus使用代码生成器遇到的小问题(推荐)

作者:OverZeal  发布时间:2021-07-17 09:15:17 

标签:Mybatis,Plus,代码生成器,自动生成代码

MybatisPlus 给我们提供了更加强大的代码生成器

MyBatisPlus 在3.0.3版本之前使用代码生成器因为存在默认依赖,所以不需要其他的依赖,项目中使用的是3.0.1的版本,所以不用添加其他依赖,添加之后反倒是会报错,实际上MP官网上已经说明了这一点,只是自己没注意才出现错误

3.0.3版本之后就需要添加如下依赖


<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.1</version>
</dependency>

MP默认将Velocity作为模板引擎,同时也支持FreemarkerBeetl 需要替换参看链接

这里贴一个比较简单的代码生成器代码


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

public class CodeGeneration {

/**
 *
 * @Title: main
 * @Description: 生成
 * @param args
 */
public static void main(String[] args) {
 AutoGenerator mpg = new AutoGenerator();

// 全局配置
 GlobalConfig gc = new GlobalConfig();
 gc.setOutputDir("D:\\generation");//输出文件路径
 gc.setFileOverride(true); // 是否文件覆盖
 gc.setActiveRecord(false);// 不需要ActiveRecord(实体类继承Model)特性的请改为false
 gc.setEnableCache(false);// XML 二级缓存
 gc.setBaseResultMap(true);// XML ResultMap
 gc.setBaseColumnList(true);// XML ColumnList
 gc.setAuthor("lizhan");// 作者

// 自定义文件命名,注意 %s 会自动填充表实体属性!
 gc.setControllerName("%sController");
 // 默认service接口名IXXXService 自定义指定之后就不会用I开头了
 gc.setServiceName("%sService");
 gc.setServiceImplName("%sServiceImpl");
 gc.setMapperName("%sMapper");
 gc.setXmlName("%sMapper");
 mpg.setGlobalConfig(gc);

// 数据源配置
 DataSourceConfig dsc = new DataSourceConfig();
 dsc.setDbType(DbType.MYSQL);
 dsc.setDriverName("com.mysql.cj.jdbc.Driver");
 dsc.setUsername("xxx");
 dsc.setPassword("xxx");
 dsc.setUrl("jdbc:mysql://localhost:3306/xxx");
 mpg.setDataSource(dsc);

// 策略配置
 StrategyConfig strategy = new StrategyConfig();
 // strategy.setTablePrefix(new String[] { "sys_" });// 此处可以修改为您的表前缀
 strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略(下划线转驼峰)
 strategy.setInclude("user"); // 需要生成的表名

strategy.setSuperServiceClass(null);
 strategy.setSuperServiceImplClass(null);
 strategy.setSuperMapperClass(null);

mpg.setStrategy(strategy);

// 包配置
 PackageConfig pc = new PackageConfig();
 pc.setParent("com.xxx");
 pc.setController("controller");
 pc.setService("service");
 pc.setServiceImpl("impl");
 pc.setMapper("mapper");
 pc.setEntity("entity");
 pc.setXml("xml");
 mpg.setPackageInfo(pc);

// 执行生成
 mpg.execute();

}

}

PS:下面看下MybatisPlus自动生成代码

POM依赖


<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-boot-starter</artifactId>
 <version></version>
</dependency>
<dependency>
 <groupId>com.baomidou</groupId>
 <artifactId>mybatis-plus-generator</artifactId>
 <version></version>
</dependency>

样板代码 


//01配置链接数据源
public static DataSourceConfig dataSource() {
 DataSourceConfig dataSourceConfig = new DataSourceConfig();
 dataSourceConfig.setDbType(DbType.MYSQL);
 /**************这里请填写你的ip和你的端口号及数据库名称**************/
 dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8");
 /**************您的账号**************/
 dataSourceConfig.setUsername("root");
 /**************您的密码**************/
 dataSourceConfig.setPassword("root");
 //您的数据库引擎
 dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
 return dataSourceConfig;
}

//02配置全局
public static GlobalConfig globalConfig() {
 GlobalConfig globalConfig = new GlobalConfig();
 /**************路径**************/
 globalConfig.setOutputDir("X:\\xxx\\" + "/src/main/java");
 //不会默认打开文件夹
 globalConfig.setOpen(false);
 //创建者
 globalConfig.setAuthor("xxx");
 //创建serviceImpl不会有大写的I
 globalConfig.setServiceName("%sService");
 return globalConfig;
}

//03配置包信息
public static PackageConfig packageConfig() {
 PackageConfig packageConfig = new PackageConfig();
 /**************父级包名**************/
 packageConfig.setParent("com.xxxxx");
 //父级包名称
 packageConfig.setModuleName("generator");
 packageConfig.setController("controller");
 packageConfig.setService("service");
 packageConfig.setServiceImpl("service.impl");
 packageConfig.setMapper("mapper");
 packageConfig.setEntity("entity");
 return packageConfig;
}

//04配置策略
public static StrategyConfig strategyConfig(){
 StrategyConfig strategyConfig = new StrategyConfig();
 //添加lombok
 strategyConfig.setEntityLombokModel(true);
 //下划线转驼峰
 strategyConfig.setNaming(NamingStrategy.underline_to_camel);
 //同上
 strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
 /**************要生成的表名**************/
 strategyConfig.setInclude("xxx");
 return strategyConfig;
}

public static void main(String[] args) {
 //创建generator对象
 AutoGenerator autoGenerator = new AutoGenerator();
 //链接配置
 autoGenerator.setDataSource(dataSource());
 //全局配置
 autoGenerator.setGlobalConfig(globalConfig());
 //包信息
 autoGenerator.setPackageInfo(packageConfig());
 //配置策略
 autoGenerator.setStrategy(strategyConfig());
 //去吧皮卡丘
 autoGenerator.execute();
}

来源:https://www.cnblogs.com/lz2017/p/11617965.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com