123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package com.zanxiang.sdk.config;
- import com.baomidou.mybatisplus.annotation.DbType;
- import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
- import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
- import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.ibatis.cache.CacheKey;
- import org.apache.ibatis.executor.Executor;
- import org.apache.ibatis.executor.statement.StatementHandler;
- import org.apache.ibatis.mapping.BoundSql;
- import org.apache.ibatis.mapping.MappedStatement;
- import org.apache.ibatis.session.ResultHandler;
- import org.apache.ibatis.session.RowBounds;
- import org.mybatis.spring.annotation.MapperScan;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.transaction.annotation.EnableTransactionManagement;
- import java.sql.Connection;
- import java.sql.SQLException;
- /**
- * @Author wcc
- * @Date 2020/9/11 9:30
- * @Version 1.0
- * @Description
- */
- @Configuration
- @EnableTransactionManagement
- @MapperScan("com.zanxiang.sdk.mapper")
- public class MybatisPlusConfig {
- /**
- * 分页插件
- */
- @Bean
- public MybatisPlusInterceptor mybatisPlusInterceptor() {
- MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
- interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
- interceptor.addInnerInterceptor(new DatascopeInterceptor());
- return interceptor;
- }
- @Slf4j
- public static class DatascopeInterceptor implements InnerInterceptor {
- /**
- * {@link Executor#query(MappedStatement, Object, RowBounds, ResultHandler, CacheKey, BoundSql)} 操作前置处理
- * <p>
- * 改改sql啥的
- *
- * @param executor Executor(可能是代理对象)
- * @param ms MappedStatement
- * @param parameter parameter
- * @param rowBounds rowBounds
- * @param resultHandler resultHandler
- * @param boundSql boundSql
- */
- @Override
- public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
- /*System.out.println("-- beforeQuery --");
- try {
- Select select = (Select) CCJSqlParserUtil.parse(boundSql.getSql());
- SelectBody selectBody = select.getSelectBody();
- if (selectBody instanceof PlainSelect) {
- PlainSelect plainSelect = (PlainSelect) selectBody;
- List<OrderByElement> orderByElements = plainSelect.getOrderByElements();
- System.out.println(select.toString());
- } else if (selectBody instanceof SetOperationList) {
- SetOperationList setOperationList = (SetOperationList) selectBody;
- List<OrderByElement> orderByElements = setOperationList.getOrderByElements();
- System.out.println(select.toString());
- } else if (selectBody instanceof WithItem) {
- // todo: don't known how to resole
- System.out.println(selectBody);
- }
- } catch (JSQLParserException e) {
- log.warn("failed to parse sql, exception:\n" + e.getCause());
- }*/
- }
- /**
- * {@link StatementHandler#prepare(Connection, Integer)} 操作前置处理
- * <p>
- * 改改sql啥的
- *
- * @param sh StatementHandler(可能是代理对象)
- * @param connection Connection
- * @param transactionTimeout transactionTimeout
- */
- @Override
- public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
- //System.out.println("-- beforePrepare --");
- }
- }
- }
|