每日一学(mybatis的代码生成器)

import java.util.ArrayList;

import java . util . List ;
import java . util . Scanner ;
import com . baomidou . mybatisplus . core . exceptions . MybatisPlusException ;
import com . baomidou . mybatisplus . core . toolkit . StringPool ;
import com . baomidou . mybatisplus . core . toolkit . StringUtils ;
import com . baomidou . mybatisplus . generator . AutoGenerator ;
import com . baomidou . mybatisplus . generator . InjectionConfig ;
import com . baomidou . mybatisplus . generator . config . DataSourceConfig ;
import com . baomidou . mybatisplus . generator . config . FileOutConfig ;
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 . TemplateConfig ;
import com . baomidou . mybatisplus . generator . config . po . TableInfo ;
import com . baomidou . mybatisplus . generator . config . rules . NamingStrategy ;
import com . baomidou . mybatisplus . generator . engine . FreemarkerTemplateEngine ;
/**
@作者:zhangrongshan
* mysql 代码⽣成器演示例⼦
*/
public class MysqlGenerator {
/**
* <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 . isNotEmpty ( ipt )) {
return ipt ; }
}
throw new MybatisPlusException ( " 请输⼊正确的 " + tip + " " );
}
/**
* RUN THIS
*/
public static void main ( String [] args ) {
// 代码⽣成器
AutoGenerator mpg = new AutoGenerator ();
// 全局配置
GlobalConfig gc = new GlobalConfig ();
String projectPath = System . getProperty ( "user.dir" );
gc . setOutputDir ( projectPath + "/src/main/java" );
gc . setAuthor ( "lagou" );
gc . setOpen ( false );
mpg . setGlobalConfig ( gc );
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig ();
dsc . setUrl ( "jdbc:mysql://127.0.0.1:3306/mp?
useUnicode=true&useSSL=false&characterEncoding=utf8" );
// dsc.setSchemaName("public");
dsc . setDriverName ( "com.mysql.jdbc.Driver" );
dsc . setUsername ( "root" );
dsc . setPassword ( "root" );
mpg . setDataSource ( dsc );
// 包配置
PackageConfig pc = new PackageConfig ();
pc . setModuleName ( scanner ( " 模块名 " ));
pc . setParent ( "com.lagou.mp.generator" );
mpg . setPackageInfo ( pc );
// ⾃定义配置
InjectionConfig cfg = new InjectionConfig () {
@Override
public void initMap () {
// to do nothing
}
};
List < FileOutConfig > focList = new ArrayList <> ();
focList . add ( new FileOutConfig ( "/templates/mapper.xml.ftl" ) {
@Override
public String outputFile ( TableInfo tableInfo ) {
// ⾃定义输⼊⽂件名称 return projectPath + "/lagou-mp
generator/src/main/resources/mapper/" + pc . getModuleName ()
+ "/" + tableInfo . getEntityName () + "Mapper" +
StringPool . DOT_XML ;
}
});
cfg . setFileOutConfigList ( focList );
mpg . setCfg ( cfg );
mpg . setTemplate ( new TemplateConfig (). setXml ( null ));
// 策略配置
StrategyConfig strategy = new StrategyConfig ();
strategy . setNaming ( NamingStrategy . underline_to_camel );
strategy . setColumnNaming ( NamingStrategy . underline_to_camel );
//
strategy.setSuperEntityClass("com.baomidou.mybatisplus.samples.generator.commo
n.BaseEntity");
strategy . setEntityLombokModel ( true );
//
strategy.setSuperControllerClass("com.baomidou.mybatisplus.samples.generator.c
ommon.BaseController");
strategy . setInclude ( scanner ( " 表名 " ));
strategy . setSuperEntityColumns ( "id" );
strategy . setControllerMappingHyphenStyle ( true );
strategy . setTablePrefix ( pc . getModuleName () + "_" );
mpg . setStrategy ( strategy );
// 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!
mpg . setTemplateEngine ( new FreemarkerTemplateEngine ());
mpg . execute ();
}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值