mybatis-plus配置代码自动生成,自动构建实体类

2022-07-05  本文已影响0人  疏_桐
一、引用maven配置
<!-- 代码自动生成依赖 begin -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.4.1</version>
    </dependency>
    <!-- velocity -->
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity-engine-core</artifactId>
        <version>2.0</version>
    </dependency>
二、代码实现
package com.zlihk.test;
import com.baomidou.mybatisplus.annotation.DbType;
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.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class MyBatisPlusGenerator {

public static void main(String[] args) {
    //1. 全局配置
    GlobalConfig config = new GlobalConfig();
    // 是否支持AR模式
    config.setActiveRecord(true)
            // 作者
            .setAuthor("Reger")
            // 生成路径,最好使用绝对路径
            //TODO  TODO  TODO  TODO
            .setOutputDir("C:\\temp")
            // 文件覆盖
            .setFileOverride(true)
            // 主键策略
            .setIdType(IdType.AUTO)

            .setDateType(DateType.ONLY_DATE)
            // 设置生成的service接口的名字的首字母是否为I,默认Service是以I开头的
            .setServiceName("%sService")

            //实体类结尾名称
            .setEntityName("%sPO")

            //生成基本的resultMap
            .setBaseResultMap(true)

            //不使用AR模式
            .setActiveRecord(false)

            //生成基本的SQL片段
            .setBaseColumnList(true);

    //2. 数据源配置
    DataSourceConfig dsConfig = new DataSourceConfig();
    // 设置数据库类型
    dsConfig.setDbType(DbType.SQL_SERVER)
            .setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
            //TODO  TODO  TODO  TODO
            .setUrl("jdbc:sqlserver://HKWDBD13;DatabaseName=LIFE_DIRECT_PORTAL_DEV;integratedSecurity=true")
            .setUsername("ldp_ddl")
            .setPassword("Zurich1812");

    //3. 策略配置globalConfiguration中
    StrategyConfig stConfig = new StrategyConfig();

    //全局大写命名
    stConfig.setCapitalMode(true)
            // 数据库表映射到实体的命名策略
            .setNaming(NamingStrategy.underline_to_camel)

            //使用lombok
            .setEntityLombokModel(true)

            //使用restcontroller注解
            .setRestControllerStyle(true)

            // 生成的表, 支持多表一起生成,以数组形式填写
            //TODO  TODO  TODO  TODO 两个方式,直接写,或者使用命令行输入
            .setInclude("ld_country");
    //.setInclude(scanner("表名,多个英文逗号分割").split(","));

    //4. 包名策略配置
    PackageConfig pkConfig = new PackageConfig();
    pkConfig.setParent("net.xdclass")
            .setMapper("mapper")
            .setService("service")
            .setController("controller")
            .setEntity("model")
            .setXml("mapper");

    //5. 整合配置
    AutoGenerator ag = new AutoGenerator();
    ag.setGlobalConfig(config)
            .setDataSource(dsConfig)
            .setStrategy(stConfig)
            .setPackageInfo(pkConfig);

    //6. 执行操作
    ag.execute();
    System.out.println("=======  Done 相关代码生成完毕  ========");
}

}

遇到的一些问题:
1. Failed to load the sqljdbc_auth.dll cause:no sqljdbc_auth in java.library.path

解决办法:下载sqljdbc驱动
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=11774

image.png
image.png

下载后,找到sqljdbc.auth.dll,放到jdk的bin(C:\jdk-11\bin)目录下,即可解决

2. 登录报错:java.lang.NoClassDefFoundError:javax/xml/bind/DatatypeConverter

这是由于java版本过高,之前java 8及以前的版本是默认包含jaxb-api包的,但是升级后的版本就需要手动来导入这个包了。
所以找到pom.xml文件,然后在里边添加如下代码

     <dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-core</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>

也可以将jdk版本降到1.8解决

上一篇下一篇

猜你喜欢

热点阅读