目录
1. MP自动代码生成和解析
1.1 getProperty()方法中的key到底是什么
1.2 源码中 System 中 左边是key 调用上面方法能获取到后面内
1.3 测试用例: user.dir /java.version
2. 全部自动生成的代码
3. 注意修改
Parent设置包名 可以尝试一下
3.1 生成后 可以看到文件信息
4. 报错信息一:
java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
5. 报错信息二: 只有文件夹 没有文件
1. MP自动代码生成和解析
依赖两个: 另一个在最下面(必须添加)
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
1.1 getProperty()方法中的key到底是什么
String projectPath = System.getProperty(" *** ");
System.out.println(projectPath);
1.2 源码中 System 中 左边是key 调用上面方法能获取到后面内
/**
* System properties. The following properties are guaranteed to be defined:
* <dl>
* <dt>java.version <dd>Java version number
* <dt>java.vendor <dd>Java vendor specific string
* <dt>java.vendor.url <dd>Java vendor URL
* <dt>java.home <dd>Java installation directory
* <dt>java.class.version <dd>Java class version number
* <dt>java.class.path <dd>Java classpath
* <dt>os.name <dd>Operating System Name
* <dt>os.arch <dd>Operating System Architecture
* <dt>os.version <dd>Operating System Version
* <dt>file.separator <dd>File separator ("/" on Unix)
* <dt>path.separator <dd>Path separator (":" on Unix)
* <dt>line.separator <dd>Line separator ("\n" on Unix)
* <dt>user.name <dd>User account name
* <dt>user.home <dd>User home directory
* <dt>user.dir <dd>User's current working directory
* </dl>
*/
private static Properties props;
1.3 测试用例: user.dir /java.version
2. 全部自动生成的代码
package sso;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
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.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
/**
* @Author pzy
* @Description: TODO
* @Version 0.1.0
*/
public class MpAutoGeneration {
@Test
public void run() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
/**
* 获取到当前工程的文件位置
*/
// String projectPath = System.getProperty("user.dir");
String projectPath = System.getProperty("java.version");
System.out.println(projectPath);
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("pzy");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
//UserServie
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.AUTO); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://*:3306/aisce?serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("*");
dsc.setPassword("*");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("system"); //模块名
//包 com.atguigu.eduservice
pc.setParent("*");
//包 com.atguigu.eduservice.controller
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
// strategy.setInclude("edu_chapter","edu_course","edu_course_description","edu_video");
strategy.setInclude("user");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
// 6、执行
mpg.execute();
}
}
3. 注意修改
数据库连接池 配置
DataSource
url
root
password
pc.setParent("*");
Parent设置包名 可以尝试一下
控制台中能找到 如图所示:
3.1 生成后 可以看到文件信息
4. 报错信息一:
java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
解决办法: (缺少生成的模板)
有两种模板引擎 一是velocity,二是freemarker 看看使用哪个比较好(或适合)
模板一:
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
模板二:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
5. 报错信息二: 只有文件夹 没有文件
寻找 setInclude()方法 看看是否存在此表
全部结束 看到这个成功, 其他问题欢迎评论区留言
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)