验证中...
整理自mybatisplus 自动生成代码配置
原始数据 复制代码
<!--更换为mybatis-plus,其内置了mybatis-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.1.9</version>
</dependency>
自动生成,controller,service,dao层代码,包括单表操作的curd代码
package com.qdzklt.gencode;
import com.baomidou.mybatisplus.enums.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.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* @Description: 根据项目需求生成对应的代码
* <p>
* 生成mvc各层代码,controller,service,dao <br>
* 生成基于mybatis,单表操的curd和分页查询代码 <br>
* 详细配置参考 http://baomidou.oschina.io/mybatis-plus-doc/#/generate-code
* <p>
* 官网 http://baomidou.oschina.io/mybatis-plus-doc/#/
* @Author: peng.liu
* @CreateDate: 2018/1/27 9:47
*/
public class GenerateMVCCode {
public static void main(String[] args) {
String outputDir = "D:\\WorkSpace\\cloudSpring\\cloud\\cloud-admin\\src\\main\\java";
String parentPackaageName = "com.qdzklt.cloud";
String moduleName = "activity";
String url = "jdbc:mysql://ip/cloud?characterEncoding=utf8";
String driverName = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "root";
String[] tableNames = {
// "","","","","","","","",
"res_activity"
};
run(outputDir,parentPackaageName,moduleName, url, driverName, userName, password, tableNames);
}
public static void run(String outputDir, String parentPackaageName,
String moduleName, String url,
String driverName, String userName,
String password, String[] tableNames) {
new AutoGenerator()
//全局 相关配置
.setGlobalConfig(
new GlobalConfig()
//生成文件的输出目录【默认 D 盘根目录 D:// 】
.setOutputDir(outputDir)
//是否覆盖已有文件
.setFileOverride(true)
//是否打开输出目录
.setOpen(true)
//是否在xml中添加二级缓存配置
.setEnableCache(false)
//开发人员
.setAuthor("此代码为自动生成")
//开启 Kotlin 模式
.setKotlin(false)
//开启 ActiveRecord 模式
// 此模式详细解释http://baomidou.oschina.io/mybatis-plus-doc/#/quick-start?id=%e7%ae%80%e5%8d%95%e7%a4%ba%e4%be%8bactiverecord
.setActiveRecord(true)
//开启 BaseResultMap
.setBaseResultMap(true)
//开启 baseColumnList
.setBaseColumnList(true)
//各层文件名称方式,例如: %Action 生成 UserAction
// 自定义文件命名,注意 %s 会自动填充表实体属性!
.setMapperName("%sDao")
.setXmlName("%sDao")
.setServiceName("%sService")
.setServiceImplName("%sServiceImpl")
.setControllerName("%sController")
//指定生成的主键的ID类型
// AUTO(0, "数据库ID自增"), INPUT(1, "用户输入ID"),
// /* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */
// ID_WORKER(2, "全局唯一ID"), UUID(3, "全局唯一ID"), NONE(4, "该类型为未设置主键类型");
.setIdType(IdType.ID_WORKER)
)
//数据源配置
.setDataSource(
new DataSourceConfig()
//设置数据库类型,支持:mysql,oracle,sql_server,postgre_sql
.setDbType(DbType.MYSQL)
// .setSchemaname()//PostgreSQL schemaname
.setTypeConvert(new MySqlTypeConvert() {
// 自定义数据库表字段类型转换【可选】
@Override
public DbColumnType processTypeConvert(String fieldType) {
// System.out.println("转换类型:" + fieldType);
// 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。
return super.processTypeConvert(fieldType);
}
})
//驱动名称
.setDriverName(driverName)
//连接数据库的url
.setUrl(url)
//数据库连接用户名
.setUsername(userName)
//数据库连接密码
.setPassword(password)
)
//数据库表配置,生成策略配置
.setStrategy(
new StrategyConfig()
//是否大写命名 ORACLE 注意
// .setCapitalMode(true)
//数据库表映射到实体的命名策略
// nochange不做任何改变,原样输出 underline_to_camel下划线转驼峰命名
.setNaming(NamingStrategy.underline_to_camel)
//此处可以修改为您的表前缀
.setTablePrefix(new String[]{"t_", "acc_", "res_", "sys_"})
//字段前缀
// .setFieldPrefix()
//自定义继承的Entity类全称,带包名
// .setSuperEntityClass("com.baomidou.demo.TestEntity")
//自定义基础的Entity类,公共字段
// .setSuperEntityColumns(new String[] { "test_id", "age" })
//自定义继承的Mapper类全称,带包名
// .setSuperMapperClass("com.baomidou.demo.TestMapper")
//自定义继承的Service类全称,带包名
// .setSuperServiceClass("com.baomidou.demo.TestService")
//自定义继承的ServiceImpl类全称,带包名
// .setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl")
//自定义继承的Controller类全称,带包名
.setSuperControllerClass("com.qdzklt.cloud.web.BaseController")
//需要包含的表名(与exclude二选一配置)
.setInclude(tableNames)
//需要排除的表名
// .setExclude(new String[]{"test"})
//* 【实体】是否生成字段常量(默认 false)<br> public static final String ID = "test_id";
// .setEntityColumnConstant(true)
//【实体】是否为构建者模型(默认 false)<br> public User setName(String name) { this.name = name; return this; }
// .setEntityBuilderModel(true)
//【实体】是否为lombok模型(默认 false)<br> <a href="https://projectlombok.org/">document</a>
// .setEntityLombokModel()
//Boolean类型字段是否移除is前缀(默认 false)<br>
//比如 : 数据库字段名称 : 'is_xxx',类型为 : tinyint. 在映射实体的时候则会去掉is,在实体类中映射最终结果为 xxx
// .setEntityBooleanColumnRemoveIsPrefix()
/*
* 生成 <code>@RestController</code> 控制器
* <pre>
* <code>@Controller</code> -> <code>@RestController</code>
* </pre>
*/
.setRestControllerStyle(true)
/*
* 驼峰转连字符
* <pre>
* <code>@RequestMapping("/managerUserActionHistory")</code> ->
* <code>@RequestMapping("/manager-user-action-history")</code>
* </pre>
*/
// .setControllerMappingHyphenStyle()
//是否生成实体时,生成字段注解
// .entityTableFieldAnnotationEnable()
//乐观锁属性名称
// .setVersionFieldName()
//逻辑删除属性名称
// .setLogicDeleteFieldName()
//表填充字段
// .setTableFillList()
)
//包 相关配置
.setPackageInfo(
new PackageConfig()
//父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
.setParent(parentPackaageName)
//父包模块名
.setModuleName(moduleName)
//Entity包名
.setEntity("entity")
//Service包名
.setService("service")
//Service Impl包名
.setServiceImpl("service.impl")
//Mapper包名
.setMapper("dao")
//Mapper XML包名
.setXml("dao")
//Controller包名
.setController("controller")
)
//注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】
// .setCfg(
// new InjectionConfig() {
// @Override
// public void initMap() {
// Map<String, Object> map = new HashMap<String, Object>();
// map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
// this.setMap(map);
// }
// }
// )
//模板 相关配置
// .setTemplate(
// // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改,
// // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
// //new TemplateConfig()
// // tc.setController("...");
// // tc.setEntity("...");
// // tc.setMapper("...");
// // tc.setXml("...");
// // tc.setService("...");
// // tc.setServiceImpl("...");
// // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。
// // mpg.setTemplate(tc);
// )
//执行代码生成
.execute();
}
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助