Springboot整合MybatisPlus配置自动生成代码

Springboot整合MybatisPlus

在整合MybatisPlus之前我们先创建测试表

File Encoding         : 65001

Date: 2020-12-26 11:19:06
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL auto_increment COMMENT '主键ID',
  `name` varchar(30) default NULL COMMENT '姓名',
  `age` int(11) default NULL COMMENT '年龄',
  `email` varchar(50) default NULL COMMENT '邮箱',
  `update_time` datetime default NULL,
  `create_time` datetime NOT NULL,
  `is_delete` int(255) NOT NULL,
  `version` int(11) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

1. 导入依赖


<dependency>
    <groupId>io.springfoxgroupId>
    <artifactId>springfox-swagger2artifactId>
    <version>3.0.0version>
dependency>

<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <version>1.18.16version>
    <scope>providedscope>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>

<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>5.1.37version>
dependency>
<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.0.5version>
dependency>

<dependency>
    <groupId>org.apache.velocitygroupId>
    <artifactId>velocity-engine-coreartifactId>
    <version>2.0version>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-testartifactId>
    <scope>testscope>
dependency>

2.新建springboot项目,配置数据源

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/Schema?useUnicode=true&characterEncoding=utf8&useSSL=true
    username: root
    password: root
  profiles:
    active: dev
mybatis-plus:
	# mapper 文件位置  
  mapper-locations: classpath:**/mapper/xml/*.xml
  # 别名  这个一定要跟你的pojo 路路径名一直
  type-aliases-package: com.springboot.test
  # 缓存
  configuration.cache-enabled: false
  global-config.db-config.db-type: mysql
  configuration.jdbc-type-for-null: null
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
server: # 运行环境
  port: 9000

3.编写自动生成代码类

里面所有的配置都可以根据实际需求来
public static void main(String[] args) {
    // 创建一个 代码自动生成器 对象
    AutoGenerator mpg = new AutoGenerator();
    //1、全局配置
    GlobalConfig gc = new GlobalConfig();
    String prPath = System.getProperty("user.dir");//获取当前系统目录
    gc.setOutputDir(prPath+"/src/main/java");//指定输出的位置
    gc.setAuthor("wjh");//设置作者
    gc.setOpen(false);//是否打开资源管理器
    gc.setFileOverride(false);//是否覆盖原来的文件
    gc.setServiceName("%sService");//去掉service的i前缀
    gc.setIdType(IdType.ID_WORKER);//设置id的生成策略默认算法
    gc.setDateType(DateType.ONLY_DATE);//设置日期生成策略
    gc.setSwagger2(true);  // swagger 插件配置
    mpg.setGlobalConfig(gc);  // 设置配置

    //2、设置数据源
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl("jdbc:mysql://127.0.0.1:3306/Schema?useUnicode=true&characterEncoding=utf8&useSSL=true");
    dsc.setDriverName("com.mysql.jdbc.Driver");
    dsc.setUsername("root");
    dsc.setPassword("root");
    dsc.setDbType(DbType.MYSQL);//数据库类型
    mpg.setDataSource(dsc);

    //3、配置包
    PackageConfig pc = new PackageConfig();
    pc.setModuleName("blog");//设置模块 把代码生成在那个包下  如果想生成 跟启动类同级的目录下  就注释这行
    pc.setParent("com.wjb");
    pc.setEntity("pojo");
    pc.setMapper("mapper");
    pc.setService("service");
    pc.setController("controller");
    mpg.setPackageInfo(pc);

    //4、策略配置
    StrategyConfig strategy = new StrategyConfig();
    strategy.setInclude("user");//指定要映射的数据库表,可以写多个
    strategy.setNaming(NamingStrategy.underline_to_camel);//设置命名规则下划线转驼峰
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);//列名规则
    strategy.setEntityLombokModel(true);//是否生成lombok注解

    //strategy.setLogicDeleteFieldName("deleted");//逻辑删除字段配置
    //自动填充的配置
    TableFill create_time = new TableFill("create_time", FieldFill.INSERT);//设置时的生成策略
    TableFill update_time = new TableFill("update_time", FieldFill.INSERT_UPDATE);//设置更新时间的生成策略
    ArrayList<TableFill> list = new ArrayList<>();
    list.add(create_time);
    list.add(update_time);
    strategy.setTableFillList(list);

    //乐观锁
    strategy.setVersionFieldName("version");
    strategy.setRestControllerStyle(true);//开启驼峰命名
    strategy.setControllerMappingHyphenStyle(true);//开启链接地址的下划线命名 localhost:8080/hello_id_2
    mpg.setStrategy(strategy);

    mpg.execute();
}

运行之后会出现:

准备生成文件…

文件生成完成!!!

说明你已经自动生成代码成功!也可以指定生成路径,具体配置可参考官方文档

你可能感兴趣的:(SpringBoot,java,mybatis,数据库)