MybatisPlus代码自动生成详细配置
最近使用mybatisplus来做数据层操作越来越多了,对于一般的Java web项目来说正所谓“天下的代码一般黑”哈哈哈。
项目的包结构都是一个逻辑,基础包无非是controller,eneity,service,impl,mapper这几个,
这些包的代码格式也大概是固定的,至于config和utils这些包则根据我们自己的需要来写了。
对于上面的基础包,mybatisplus中有方法帮我们
自动生成,当然也只是帮我们生成包名和类结构,业务层的逻辑还是得自己编写。
直接放代码吧:
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
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.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import java.util.ArrayList;
import java.util.List;
public class JCode {
public static void main(String[] args) {
//代码自动生成器对象
AutoGenerator jcode = new AutoGenerator();
//全局配置
GlobalConfig jconfig = new GlobalConfig();
String jpath = System.getProperty("user.dir");//作用域
jconfig.setOutputDir(jpath+"/src/main/java");//生成包的路径
jconfig.setAuthor("XX");//作者名字
jconfig.setOpen(false);
jconfig.setFileOverride(false);
jconfig.setIdType(IdType.ASSIGN_ID);//数据库主键id雪花算法自增
jconfig.setDateType(DateType.ONLY_DATE);//日期格式
jconfig.setSwagger2(true);//启用Swagger,自动生成swagger风格的注释
jcode.setGlobalConfig(jconfig);
//设置数据源
DataSourceConfig jdata = new DataSourceConfig();
jdata.setUrl("放你数据库的链接");
jdata.setDriverName("com.mysql.cj.jdbc.Driver");
jdata.setUsername("数据库用户名");
jdata.setPassword("数据库密码");
jdata.setDbType(DbType.MYSQL);
jcode.setDataSource(jdata);
//配置生成包,自动生成包的名字,下面是我用的
PackageConfig jpackage = new PackageConfig();
jpackage.setParent("com.jyan");
jpackage.setEntity("entity");
jpackage.setMapper("mapper");
jpackage.setService("service");
jpackage.setServiceImpl("service/impl");
jpackage.setController("controller");
jcode.setPackageInfo(jpackage);
//策略配置
StrategyConfig jstrategy = new StrategyConfig();
String[] n={"article","category","comments","user"};
jstrategy.setInclude(n);//这个n就是你要自动生成的实体
jstrategy.setNaming(NamingStrategy.underline_to_camel);//驼峰命名
jstrategy.setColumnNaming(NamingStrategy.underline_to_camel);
jstrategy.setEntityLombokModel(true);
//自动填充配置
TableFill jct = new TableFill("created_time", FieldFill.INSERT);//数据库插入修改时时间自动填充
TableFill jUt = new TableFill("update_time", FieldFill.UPDATE);
List<TableFill> jt = new ArrayList<>();
jt.add(jct);
jt.add(jUt);
jstrategy.setTableFillList(jt);
jcode.setStrategy(jstrategy);
//执行
jcode.execute();
}
}
基本的项目这样配置就足够用了