tianyun %!s(int64=2) %!d(string=hai) anos
pai
achega
f737558bd6

+ 44 - 0
mybatis-test/pom.xml

@@ -0,0 +1,44 @@
+<?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">
+    <parent>
+        <artifactId>java-base-maven</artifactId>
+        <groupId>com.alvin</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>mybatis-test</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <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>
+
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.28</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.1</version>
+        </dependency>
+
+    </dependencies>
+</project>

+ 2 - 2
springboot-main/src/main/java/com/alvin/Application.java → mybatis-test/src/main/java/com/alvin/db/Application.java

@@ -1,4 +1,4 @@
-package com.alvin;
+package com.alvin.db;
 
 
 import org.springframework.boot.SpringApplication;
@@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
 public class Application {
-    public static void main(String[] args) throws Exception {
+    public static void main(String[] args) {
         SpringApplication.run(Application.class);
     }
 }

+ 20 - 0
mybatis-test/src/main/java/com/alvin/db/controller/AccessRoleController.java

@@ -0,0 +1,20 @@
+package com.alvin.db.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 运营角色表 前端控制器
+ * </p>
+ *
+ * @author tianyun
+ * @since 2022-08-17
+ */
+@Controller
+@RequestMapping("/db/access-role")
+public class AccessRoleController {
+
+}

+ 156 - 0
mybatis-test/src/main/java/com/alvin/db/entity/AccessRole.java

@@ -0,0 +1,156 @@
+package com.alvin.db.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 运营角色表
+ * </p>
+ *
+ * @author tianyun
+ * @since 2022-08-17
+ */
+@TableName("access_role")
+public class AccessRole implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 角色编码
+     */
+    private String roleCode;
+
+    /**
+     * 角色名称
+     */
+    private String roleName;
+
+    /**
+     * 0--已禁用 1--已启用  DIC_NAME=ENABLE_FLAG
+     */
+    private Integer enableFlag;
+
+    /**
+     *  0--未删除 1--已删除 DIC_NAME=DEL_FLAG
+     */
+    private Integer deleteFlag;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateTime;
+
+    private Integer version;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public String getRoleCode() {
+        return roleCode;
+    }
+
+    public void setRoleCode(String roleCode) {
+        this.roleCode = roleCode;
+    }
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+    public Integer getEnableFlag() {
+        return enableFlag;
+    }
+
+    public void setEnableFlag(Integer enableFlag) {
+        this.enableFlag = enableFlag;
+    }
+    public Integer getDeleteFlag() {
+        return deleteFlag;
+    }
+
+    public void setDeleteFlag(Integer deleteFlag) {
+        this.deleteFlag = deleteFlag;
+    }
+    public String getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(String createBy) {
+        this.createBy = createBy;
+    }
+    public LocalDateTime getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(LocalDateTime createTime) {
+        this.createTime = createTime;
+    }
+    public String getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(String updateBy) {
+        this.updateBy = updateBy;
+    }
+    public LocalDateTime getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(LocalDateTime updateTime) {
+        this.updateTime = updateTime;
+    }
+    public Integer getVersion() {
+        return version;
+    }
+
+    public void setVersion(Integer version) {
+        this.version = version;
+    }
+
+    @Override
+    public String toString() {
+        return "AccessRole{" +
+            "id=" + id +
+            ", roleCode=" + roleCode +
+            ", roleName=" + roleName +
+            ", enableFlag=" + enableFlag +
+            ", deleteFlag=" + deleteFlag +
+            ", createBy=" + createBy +
+            ", createTime=" + createTime +
+            ", updateBy=" + updateBy +
+            ", updateTime=" + updateTime +
+            ", version=" + version +
+        "}";
+    }
+}

+ 16 - 0
mybatis-test/src/main/java/com/alvin/db/mapper/AccessRoleMapper.java

@@ -0,0 +1,16 @@
+package com.alvin.db.mapper;
+
+import com.alvin.db.entity.AccessRole;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 运营角色表 Mapper 接口
+ * </p>
+ *
+ * @author tianyun
+ * @since 2022-08-17
+ */
+public interface AccessRoleMapper extends BaseMapper<AccessRole> {
+
+}

+ 16 - 0
mybatis-test/src/main/java/com/alvin/db/service/IAccessRoleService.java

@@ -0,0 +1,16 @@
+package com.alvin.db.service;
+
+import com.alvin.db.entity.AccessRole;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 运营角色表 服务类
+ * </p>
+ *
+ * @author tianyun
+ * @since 2022-08-17
+ */
+public interface IAccessRoleService extends IService<AccessRole> {
+
+}

+ 20 - 0
mybatis-test/src/main/java/com/alvin/db/service/impl/AccessRoleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.alvin.db.service.impl;
+
+import com.alvin.db.entity.AccessRole;
+import com.alvin.db.mapper.AccessRoleMapper;
+import com.alvin.db.service.IAccessRoleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 运营角色表 服务实现类
+ * </p>
+ *
+ * @author tianyun
+ * @since 2022-08-17
+ */
+@Service
+public class AccessRoleServiceImpl extends ServiceImpl<AccessRoleMapper, AccessRole> implements IAccessRoleService {
+
+}

+ 38 - 0
mybatis-test/src/main/resources/application.yml

@@ -0,0 +1,38 @@
+server:
+  port: 9095
+  servlet:
+    encoding:
+      charset: UTF-8
+      force: true
+      enabled: true
+
+spring:
+  profiles:
+    active: dev
+  application:
+    name: aj-report
+  servlet:
+    multipart:
+      max-file-size: 10MB #上传图片大小限制为10MB
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+  messages:
+    basename: i18n/messages
+  datasource:
+    url: jdbc:mysql://localhost:3306/aj_report?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false
+    username: root
+    password: root
+  #数据源连接池配置
+  druid:
+    initial-size: 10 # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
+    min-idle: 10 # 最小连接池数量
+    maxActive: 200 # 最大连接池数量
+    maxWait: 3000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置
+    timeBetweenEvictionRunsMillis: 60000 # 关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。
+    minEvictableIdleTimeMillis: 300000 # 连接的最小生存时间.连接保持空闲而不被驱逐的最小时间
+    testWhileIdle: true # 申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRun
+    poolPreparedStatements: true # 开启PSCache
+    maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值
+    connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次
+    breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制
+    timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔

+ 5 - 0
mybatis-test/src/main/resources/mapper/AccessRoleMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.alvin.db.mapper.AccessRoleMapper">
+
+</mapper>

+ 1 - 0
pom.xml

@@ -12,6 +12,7 @@
         <module>test1</module>
         <module>springboot-main</module>
         <module>leetcode</module>
+        <module>mybatis-test</module>
     </modules>
 
     <properties>

+ 29 - 22
springboot-main/pom.xml

@@ -2,14 +2,12 @@
 <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">
-    <parent>
-        <artifactId>java-base-maven</artifactId>
-        <groupId>com.alvin</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
+
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>springboot-main</artifactId>
+    <groupId>com.alvin</groupId>
+    <artifactId>alvin-mybatis-plus-generator</artifactId>
+    <version>1.0</version>
 
     <properties>
         <maven.compiler.source>8</maven.compiler.source>
@@ -17,16 +15,11 @@
     </properties>
 
     <dependencies>
-        <!--<dependency>-->
-        <!--    <groupId>org.springframework.boot</groupId>-->
-        <!--    <artifactId>spring-boot-starter-web</artifactId>-->
-        <!--</dependency>-->
-
         <!--mysql-->
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.27</version>
+            <version>8.0.28</version>
         </dependency>
         <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus -->
         <dependency>
@@ -34,11 +27,6 @@
             <artifactId>mybatis-plus-boot-starter</artifactId>
             <version>3.5.1</version>
         </dependency>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <version>1.18.22</version>
-        </dependency>
         <dependency>
             <groupId>com.baomidou</groupId>
             <artifactId>mybatis-plus-generator</artifactId>
@@ -51,12 +39,31 @@
         </dependency>
     </dependencies>
     <build>
+        <!--使用Maven编译可执行的jar-->
         <plugins>
-            <!--<plugin>-->
-            <!--    <groupId>org.springframework.boot</groupId>-->
-            <!--    <artifactId>spring-boot-maven-plugin</artifactId>-->
-            <!--    <version>2.3.9.RELEASE</version>-->
-            <!--</plugin>-->
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <appendAssemblyId>false</appendAssemblyId>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <archive>
+                        <manifest>
+                            <mainClass>com.alvin.Generator</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>make-assembly</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
     </build>
 </project>

+ 18 - 9
springboot-main/src/main/java/com/alvin/Generator.java

@@ -7,34 +7,43 @@ import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
 import java.util.Collections;
 
 public class Generator {
+
+
     public static void main(String[] args) {
         String db_url = "jdbc:mysql://localhost:3306/aj_report";
         String db_username = "root";
         String db_password = "root";
 
-        String author = "tianyun";
-        String outputDir = "c:/code";
+        String javaDir = "C:\\Users\\root\\IdeaProjects\\java-base-maven\\mybatis-test\\src\\main\\java";
         String parentPackage = "com.alvin";
-        String moduleName = "user";
+        String moduleName = "db";
+        String tableName = "access_role";
+
+        String author = "tianyun";
+        String tablePrefix = "t_";
 
+
+        generatorToFile(db_url, db_username, db_password, author, javaDir, parentPackage, moduleName, tableName, tablePrefix);
+    }
+
+    private static void generatorToFile(String db_url, String db_username, String db_password, String author, String javaDir, String parentPackage, String moduleName, String tableName, String tablePrefix) {
         FastAutoGenerator.create(db_url, db_username, db_password)
                 .globalConfig(builder -> {
                     builder.author(author) // 设置作者
-                            .enableSwagger() // 开启 swagger 模式
+                            //.enableSwagger() // 开启 swagger 模式
                             .fileOverride() // 覆盖已生成文件
-                            .outputDir(outputDir); // 指定输出目录
+                            .outputDir(javaDir); // 指定输出目录
                 })
                 .packageConfig(builder -> {
                     builder.parent(parentPackage) // 设置父包名
                             .moduleName(moduleName) // 设置父包模块名
-                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, outputDir)); // 设置mapperXml生成路径
+                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, javaDir + "/../resources/mapper")); // 设置mapperXml生成路径
                 })
                 .strategyConfig(builder -> {
-                    builder.addInclude("access_role") // 设置需要生成的表名
-                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
+                    builder.addInclude(tableName) // 设置需要生成的表名
+                            .addTablePrefix(tablePrefix); // 设置过滤表前缀
                 })
                 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                 .execute();
-
     }
 }