From 4242128e8980734889a01a1ac429393b51073894 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 21 五月 2025 11:42:42 +0800
Subject: [PATCH] 重新设计mybatis插件实现方式,增加输出sql日志插件

---
 pms-parent/pms-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java |   71 +++++++++++++++++++++++++++++++----
 1 files changed, 62 insertions(+), 9 deletions(-)

diff --git a/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java b/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
index 3780956..bd2f4ae 100644
--- a/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
+++ b/pms-parent/pms-common/src/main/java/com/dy/common/mybatis/MyBatisConfig.java
@@ -1,26 +1,79 @@
 package com.dy.common.mybatis;
 
+import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import jakarta.annotation.PostConstruct;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
-@org.springframework.context.annotation.Configuration
+import java.util.List;
+
+@Configuration
 public class MyBatisConfig {
+    @Autowired
+    private List<SqlSessionFactory> sqlSessionFactoryList;
+
+    @Value("${mybatis-plus.configuration.print-sql}")
+    private boolean printSql;
+
+    /**
+     * 涓や釜鎷︽埅鍣紝鑷姩鐢熸垚ID锛屽紓甯告椂杈撳嚭SQL
+     */
+    @PostConstruct
+    public void addMyInterceptor() {
+        for (SqlSessionFactory sqlSessionFactory : sqlSessionFactoryList) {
+            org.apache.ibatis.session.Configuration conf = sqlSessionFactory.getConfiguration();
+            conf.addInterceptor(new AutoGenerateIdInterceptor());
+            conf.addInterceptor(new PrintExceptionSqlInterceptor());
+            if (printSql) {
+                conf.addInterceptor(new PrintSqlInterceptor());
+            }
+        }
+    }
+
+    /**
+     * mybatisPlus鐨勫垎闈㈡彃浠�
+     * @return 鎷︽埅鍣�
+     */
+    @Bean
+    public PaginationInnerInterceptor paginationInnerInterceptor(){
+        return new PaginationInnerInterceptor() ;
+    }
+
+
+    /*
+    @Value("${mybatis-plus.configuration.print-sql}")
+    private boolean printSql;
 
     @Bean
     public ConfigurationCustomizer mybatisConfigurationCustomizer() {
         return configuration -> {
             configuration.addInterceptor(new AutoGenerateIdInterceptor());
             configuration.addInterceptor(new PrintExceptionSqlInterceptor());
-        };
-        /*
-        return new ConfigurationCustomizer() {
-            @Override
-            public void customize(MybatisConfiguration configuration) {
-                configuration.addInterceptor(new AutoGenerateIdInterceptor());
-                configuration.addInterceptor(new PrintExceptionSqlInterceptor());
+            if (printSql) {
+                configuration.addInterceptor(new PrintSqlInterceptor());
             }
         };
-        */
+        //return new ConfigurationCustomizer() {
+        //    @Override
+        //    public void customize(MybatisConfiguration configuration) {
+        //        configuration.addInterceptor(new AutoGenerateIdInterceptor());
+        //       configuration.addInterceptor(new PrintExceptionSqlInterceptor());
+        //    }
+        //};
     }
 
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 濡傛灉閰嶇疆澶氫釜鎻掍欢, 鍒囪鍒嗛〉鏈�鍚庢坊鍔�
+        // 濡傛灉鏈夊鏁版嵁婧愬彲浠ヤ笉閰嶅叿浣撶被鍨�, 鍚﹀垯閮藉缓璁厤涓婂叿浣撶殑 DbType
+        return interceptor;
+    }
+    */
 }

--
Gitblit v1.8.0