MybatisPlusConfig.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.zanxiang.sdk.config;
  2. import com.baomidou.mybatisplus.annotation.DbType;
  3. import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
  4. import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
  5. import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
  6. import lombok.extern.slf4j.Slf4j;
  7. import org.apache.ibatis.cache.CacheKey;
  8. import org.apache.ibatis.executor.Executor;
  9. import org.apache.ibatis.executor.statement.StatementHandler;
  10. import org.apache.ibatis.mapping.BoundSql;
  11. import org.apache.ibatis.mapping.MappedStatement;
  12. import org.apache.ibatis.session.ResultHandler;
  13. import org.apache.ibatis.session.RowBounds;
  14. import org.mybatis.spring.annotation.MapperScan;
  15. import org.springframework.context.annotation.Bean;
  16. import org.springframework.context.annotation.Configuration;
  17. import org.springframework.transaction.annotation.EnableTransactionManagement;
  18. import java.sql.Connection;
  19. /**
  20. * @author : lingfeng
  21. * @time : 2022-09-28
  22. * @description : MybatisPlus分页插件
  23. */
  24. @Configuration
  25. @EnableTransactionManagement
  26. @MapperScan({"com.zanxiang.mybatis.mapper"})
  27. public class MybatisPlusConfig {
  28. @Bean
  29. public MybatisPlusInterceptor mybatisPlusInterceptor() {
  30. MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
  31. interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
  32. interceptor.addInnerInterceptor(new DatascopeInterceptor());
  33. return interceptor;
  34. }
  35. @Slf4j
  36. public static class DatascopeInterceptor implements InnerInterceptor {
  37. /**
  38. * {@link Executor#query(MappedStatement, Object, RowBounds, ResultHandler, CacheKey, BoundSql)} 操作前置处理
  39. * <p>
  40. * 改改sql啥的
  41. *
  42. * @param executor Executor(可能是代理对象)
  43. * @param ms MappedStatement
  44. * @param parameter parameter
  45. * @param rowBounds rowBounds
  46. * @param resultHandler resultHandler
  47. * @param boundSql boundSql
  48. */
  49. @Override
  50. public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
  51. }
  52. /**
  53. * {@link StatementHandler#prepare(Connection, Integer)} 操作前置处理
  54. * <p>
  55. * 改改sql啥的
  56. *
  57. * @param sh StatementHandler(可能是代理对象)
  58. * @param connection Connection
  59. * @param transactionTimeout transactionTimeout
  60. */
  61. @Override
  62. public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
  63. }
  64. }
  65. }