• MyBatis Plus 2.3 个人笔记-01-代码生成器


    • sb_mybatis_puls2.3
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.huarui</groupId>
        <artifactId>sb_mybatis_puls2.3</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>sb_mybatis_puls2.3</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <!--mybatis plus 2.3 start-->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>2.3</version>
            </dependency>
            <!--mybatis plus 2.3 end-->
    
            <!-- freemarker 代码生成器模板 start-->
            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
            </dependency>
            <!-- freemarker 代码生成器模板 end-->
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <optional>true</optional>
            </dependency>
    
    
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    pom.xml
    server:
      port: 8080
    
    
    #mysql
    spring:
      datasource:
        url: jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8
        username: youxiu326
        password: zz123456.ZZ
        driver-class-name: com.mysql.cj.jdbc.Driver
    
    
    mybatis-plus:
      # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
      # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
      mapper-locations: classpath:/com/huarui/mybatisplus/mapper/*Mapper.xml
      #实体扫描,多个package用逗号或者分号分隔
      typeAliasesPackage: com.huarui.mybatisplus.entity
      global-config:
        #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
        id-type: 2
        #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
        field-strategy: 2
        #驼峰下划线转换
        db-column-underline: true
        #mp2.3+ 全局表前缀 mp_
        table-prefix: tal_
        #刷新mapper 调试神器
        #refresh-mapper: true
        #数据库大写下划线转换
        capital-mode: true
        # Sequence序列接口实现类配置
        key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
        #逻辑删除配置(下面3个配置)
        logic-delete-value: -1
        logic-not-delete-value: 1
        #注入自定义SQL
        sql-injector: com.huarui.mybatisplus.configuration.MySqlInjector
        #自定义填充策略接口实现
        meta-object-handler: com.huarui.mybatisplus.configuration.MyMetaObjectHandler
      configuration:
        #配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
        map-underscore-to-camel-case: true
        cache-enabled: false
        #配置JdbcTypeForNull, oracle数据库必须配置
        jdbc-type-for-null: 'null'
        # 配置slq打印日志
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    application.yml
    /*
    Navicat MySQL Data Transfer
    
    Source Server         : 阿里云
    Source Server Version : 50724
    Source Host           : youxiu326.xin:3306
    Source Database       : mybatis_plus
    
    Target Server Type    : MYSQL
    Target Server Version : 50724
    File Encoding         : 65001
    
    Date: 2019-02-17 15:59:52
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for tbl_employee
    -- ----------------------------
    DROP TABLE IF EXISTS `tbl_employee`;
    CREATE TABLE `tbl_employee` (
      `id` varchar(20) NOT NULL,
      `last_name` varchar(50) DEFAULT NULL,
      `email` varchar(50) DEFAULT NULL,
      `gender` char(1) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      `version` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of tbl_employee
    -- ----------------------------
    INSERT INTO `tbl_employee` VALUES ('1', '李老师', 'youxiu326@163.com', '1', '35', '1');
    INSERT INTO `tbl_employee` VALUES ('1096995791036706818', 'MP', 'mp@atguigu.com', null, null, '1');
    INSERT INTO `tbl_employee` VALUES ('1096998099921383425', '宋老师', 'sls@atguigu.com', '1', '35', '1');
    INSERT INTO `tbl_employee` VALUES ('1096999885201649665', '玛利亚老师', 'mly@sina.com', '0', '22', null);
    INSERT INTO `tbl_employee` VALUES ('1097000111899598849', '玛利亚老师', 'mly@sina.com', '0', '22', null);
    INSERT INTO `tbl_employee` VALUES ('2', 'Jerry', 'jerry@atguigu.com', '0', '25', '1');
    INSERT INTO `tbl_employee` VALUES ('3', 'TomAA', 'tomAA@sina.com', '1', '22', '3');
    INSERT INTO `tbl_employee` VALUES ('4', '苍老师', 'cls@sina.com', '0', '35', '1');
    
    -- ----------------------------
    -- Table structure for tbl_user
    -- ----------------------------
    DROP TABLE IF EXISTS `tbl_user`;
    CREATE TABLE `tbl_user` (
      `id` varchar(20) NOT NULL,
      `name` varchar(50) DEFAULT NULL,
      `email` varchar(50) DEFAULT NULL,
      `age` int(11) DEFAULT NULL,
      `deleteFlag` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of tbl_user
    -- ----------------------------
    INSERT INTO `tbl_user` VALUES ('1', '小日', 'aaaaaa@.qq.com', '28', '1');
    INSERT INTO `tbl_user` VALUES ('2', '小日2', 'aaaaaa@.qq.com', '22', '1');
    INSERT INTO `tbl_user` VALUES ('3', '小日3', 'abbbaa@.qq.com', '22', '-1');
    INSERT INTO `tbl_user` VALUES ('4', 'youxiu326', 'niubi@.qq.com', '22', null);
    mybatis_plus.sql
    /**
     *
     * 代码生成器 2.3版
     *
     * Created by youxiu326 on 2019/2/17.
     */
    public class MpGenerator {
    
        public static void main(String[] args) {
            //1. 全局配置
            GlobalConfig config = new GlobalConfig();
            config.setActiveRecord(true) // 是否支持AR模式
                    .setAuthor("youxiu326@163.com") // 作者
                    .setOutputDir("D:\sortware\IDEA\package\sb_mybatis_puls2.3\src\main\java") // 生成路径
                    .setFileOverride(true)  // 文件覆盖
                    .setEnableCache(false)// XML 二级缓存
                    .setActiveRecord(true)// 不需要ActiveRecord特性的请改为false
                    .setIdType(IdType.ID_WORKER) // 主键策略 内容为空自动填充(默认配置)
                    .setServiceName("%sService")  // 设置生成的service接口的名字的首字母是否为I  (%s 会自动填充表实体属性)
                    // IEmployeeService
                    .setBaseResultMap(true) //是否生成mapper result
                    .setBaseColumnList(true); //是否生成mapper  查询列
    
            //2. 数据源配置
            DataSourceConfig dsConfig  = new DataSourceConfig();
            dsConfig.setDbType(DbType.MYSQL)  // 设置数据库类型
                    .setDriverName("com.mysql.jdbc.Driver")
                    .setUrl("jdbc:mysql://39.108.85.204:3306/mybatis_plus?useUnicode=true&characterEncoding=utf8")
                    .setUsername("youxiu326")
                    .setPassword("zz123456.ZZ");
    
            //3. 策略配置
            StrategyConfig stConfig = new StrategyConfig();
            stConfig.setCapitalMode(true) //全局大写命名
                    .setDbColumnUnderline(true)  // 指定表名 字段名是否使用下划线
                    .setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
                    .setTablePrefix("tbl_")
                    .setInclude(new String[] { "tbl_user"});  // 生成的表
    
            //4. 包名策略配置
            PackageConfig pkConfig = new PackageConfig();
            pkConfig.setParent("com.huarui.mybatisplus")
                    .setMapper("mapper")
                    .setService("service")
                    .setController("controller")
                    .setEntity("entity")
                    .setXml("mapper");
    
            //5. 整合配置
            AutoGenerator ag = new AutoGenerator();
    
            ag.setTemplateEngine(new FreemarkerTemplateEngine())
                    .setGlobalConfig(config)
                    .setDataSource(dsConfig)
                    .setStrategy(stConfig)
                    .setPackageInfo(pkConfig);
    
            //6. 执行
            ag.execute();
        }
    
    }

    执行成功后,自动生成 entity mapper service controller

  • 相关阅读:
    matlab函数集锦
    视觉(1)[导入]EStereo
    我为啥申请这里的博客?
    [导入]给定一个英文原文,统计文件里面一共有多少个不同的英文单词
    视觉(2)[导入]opengl贴图程序
    C++ Builder 控件的卸载<转载>
    [转]<不知道能否解决先转下来再说>不显示删除回复显示所有回复显示星级回复显示得分回复 没有找到MSVR90D.dll因此这个应用程序未能启动
    终于把《windows程序设计》上册读完了,hoho
    乱思。。。。。。。、、、、、
    测试windows live writer
  • 原文地址:https://www.cnblogs.com/youxiu326/p/MpGenerator.html
Copyright © 2020-2023  润新知