tianyun пре 2 година
родитељ
комит
ca703c2add

+ 11 - 3
mybatis-test/pom.xml

@@ -27,17 +27,25 @@
             <scope>test</scope>
         </dependency>
 
-
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.2.11</version>
+        </dependency>
         <dependency>
             <groupId>mysql</groupId>
             <artifactId>mysql-connector-java</artifactId>
-            <version>8.0.28</version>
+            <version>8.0.30</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>
+            <version>3.5.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
         </dependency>
 
     </dependencies>

+ 48 - 0
mybatis-test/src/main/java/com/alvin/db/config/MybatisPlusConfig.java

@@ -0,0 +1,48 @@
+package com.alvin.db.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Slf4j
+@Component
+public class MybatisPlusConfig implements MetaObjectHandler {
+
+    /**
+     * 新增数据执行
+     *
+     * @param metaObject
+     */
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        this.setFieldValByName("createTime", new Date(), metaObject);
+        this.setFieldValByName("updateTime", new Date(), metaObject);
+    }
+
+    /**
+     * 更新数据执行
+     *
+     * @param metaObject
+     */
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        this.setFieldValByName("updateTime", new Date(), metaObject);
+    }
+
+    /**
+     * 分页插件配置
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+}

+ 11 - 10
mybatis-test/src/main/java/com/alvin/db/entity/AccessRole.java

@@ -1,10 +1,9 @@
 package com.alvin.db.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.*;
+
 import java.io.Serializable;
-import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * <p>
@@ -53,7 +52,8 @@ public class AccessRole implements Serializable {
     /**
      * 创建时间
      */
-    private LocalDateTime createTime;
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
 
     /**
      * 更新人
@@ -63,7 +63,8 @@ public class AccessRole implements Serializable {
     /**
      * 更新时间
      */
-    private LocalDateTime updateTime;
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
 
     private Integer version;
 
@@ -109,11 +110,11 @@ public class AccessRole implements Serializable {
     public void setCreateBy(String createBy) {
         this.createBy = createBy;
     }
-    public LocalDateTime getCreateTime() {
+    public Date getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(LocalDateTime createTime) {
+    public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
     public String getUpdateBy() {
@@ -123,11 +124,11 @@ public class AccessRole implements Serializable {
     public void setUpdateBy(String updateBy) {
         this.updateBy = updateBy;
     }
-    public LocalDateTime getUpdateTime() {
+    public Date getUpdateTime() {
         return updateTime;
     }
 
-    public void setUpdateTime(LocalDateTime updateTime) {
+    public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
     public Integer getVersion() {

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

@@ -3,10 +3,14 @@ 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.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
+
 /**
  * <p>
  * 运营角色表 服务实现类
@@ -21,5 +25,38 @@ public class AccessRoleServiceImpl extends ServiceImpl<AccessRoleMapper, AccessR
     @Autowired
     private AccessRoleMapper accessRoleMapper;
 
+    @PostConstruct
+    public void init() {
+        //查询
+        //System.out.println("===byID");
+        //System.out.println(accessRoleMapper.selectById(1));
+
+        //System.out.println("===条件拼接");
+        //LambdaQueryWrapper<AccessRole> wrapper = new LambdaQueryWrapper<>();
+        //wrapper.select(AccessRole::getRoleName, AccessRole::getEnableFlag);  // select 指定字段
+        //wrapper.select(AccessRole.class, i -> !i.getColumn().equals("delete_flag")); // select 忽略某些字段
+        //wrapper.eq(AccessRole::getRoleCode, "designer");
+
+        //List<AccessRole> accessRoles = accessRoleMapper.selectList(wrapper);
+        //System.out.println(accessRoles);
+
+        //分页查询
+        LambdaQueryWrapper<AccessRole> wrapper = new LambdaQueryWrapper<>();
+        wrapper.gt(AccessRole::getId, 1);
+        Page<AccessRole> pageRes = accessRoleMapper.selectPage(new Page<>(1, 3), wrapper);
+        System.out.println(pageRes.getTotal());
+        System.out.println(pageRes.getRecords());
+
+
+        //AccessRole accessRole = new AccessRole();
+        //accessRole.setRoleCode("");
+        //accessRole.setRoleName("");
+        //accessRole.setEnableFlag(0);
+        //accessRole.setDeleteFlag(0);
+        //accessRole.setVersion(0);
+        //accessRole.setCreateBy("root");
+        //accessRoleMapper.insert(accessRole);
+
+    }
 
 }

+ 4 - 1
mybatis-test/src/main/resources/application.yml

@@ -35,4 +35,7 @@ spring:
     maxPoolPreparedStatementPerConnectionSize: 20 #设置PSCache值
     connectionErrorRetryAttempts: 3 # 连接出错后再尝试连接三次
     breakAfterAcquireFailure: true # 数据库服务宕机自动重连机制
-    timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔
+    timeBetweenConnectErrorMillis: 300000 # 连接出错后重试时间间隔
+mybatis-plus:
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

+ 14 - 2
springboot-main/src/main/java/com/alvin/Generator.java

@@ -1,8 +1,11 @@
 package com.alvin;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 import com.baomidou.mybatisplus.generator.config.OutputFile;
+import com.baomidou.mybatisplus.generator.config.rules.DateType;
 import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+import com.baomidou.mybatisplus.generator.fill.Column;
 
 import java.util.Collections;
 
@@ -14,7 +17,7 @@ public class Generator {
         String db_username = "root";
         String db_password = "root";
 
-        String javaDir = "C:\\Users\\root\\IdeaProjects\\java-base-maven\\mybatis-test\\src\\main\\java";
+        String javaDir = "C:/code";
         String parentPackage = "com.alvin";
         String moduleName = "db";
         String tableName = "access_role";
@@ -30,6 +33,7 @@ public class Generator {
         FastAutoGenerator.create(db_url, db_username, db_password)
                 .globalConfig(builder -> {
                     builder.author(author) // 设置作者
+                            .dateType(DateType.ONLY_DATE) // 设置日期为 Date
                             //.enableSwagger() // 开启 swagger 模式
                             .fileOverride() // 覆盖已生成文件
                             .outputDir(javaDir); // 指定输出目录
@@ -41,7 +45,15 @@ public class Generator {
                 })
                 .strategyConfig(builder -> {
                     builder.addInclude(tableName) // 设置需要生成的表名
-                            .addTablePrefix(tablePrefix); // 设置过滤表前缀
+                            .addTablePrefix(tablePrefix)
+                            .entityBuilder()
+                            .enableLombok()
+                            .addTableFills(
+                                    new Column("create_time", FieldFill.INSERT),
+                                    new Column("update_time", FieldFill.INSERT_UPDATE)
+                            )
+                    ;
+
                 })
                 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                 .execute();