Mybatis Generator
- 使用xml配置文件形式自动生成
- 只生成实体类、mapper接口及mapper.xml。并且包含丰富的内容
- 首先添加mybatis依赖和相关插件
org.mybatis
mybatis
3.5.7
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.0
org.mybatis.generator
mybatis-generator-core
1.3.2
com.mchange
c3p0
0.9.2
mysql
mysql-connector-java
5.1.8
- 创建generatorConfig.xml配置文件,从官网中复制下来即可.其中元素标签说明卸载注释中
- 最后在右边点击maven中插件,双击mybatis-generator:generate
- 说明:上述两个配置文件都会报红,不用管尽管运行即可
MybatisPlus Generator
- 使用代码形式自动生成
- 会生成从Controller层到Dao层的所有文件,其中还包括实体类
- 首先添加必须的依赖
com.baomidou
mybatis-plus-boot-starter
3.0.5
org.apache.velocity
velocity-engine-core
2.0
org.projectlombok
lombok
1.18.20
- 这里是在单元测试中运行
public class GeneratorTest{
@Test
public void run() {
// 1、创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2、全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
// 换成绝对路径
gc.setOutputDir("your project absolute path" + "/src/main/java");
gc.setAuthor("xsha_h");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.ID_WORKER_STR); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3、数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql:///database_name?serviceTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("username");
dsc.setPassword("password");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4、包配置
PackageConfig pc = new PackageConfig();
// 包名 com.xsha.module_name
pc.setParent("com.xsha");
pc.setModuleName("module_name"); //模块名
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5、策略配置
StrategyConfig strategy = new StrategyConfig();
// 生成表格名称对应的实体类
strategy.setInclude("table_name1", "table_name2", "table_name3", "table_name4");
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();
}
}
- 运行即可生效
Original: https://www.cnblogs.com/aitiknowledge/p/16504775.html
Author: xsha_h
Title: 代码生成器
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/608533/
转载文章受原作者版权保护。转载请注明原作者出处!