springboot项目自定义数据源,mybatisplus分页逻辑删除无效解决方法(代码片段)

loptis loptis     2022-12-10     511

关键词:

Spring Boot项目中数据源的配置可以通过两种方式实现:

1.application.yml或者application.properties配置

2.注入DataSource及SqlSessionFactory两个Bean

通过第二种方式配置数据源则按照MybatisPlus官方文档使用分页及逻辑删除插件会无效,解决思路是在初始化SqlSessionFactory将插件设置进去

    /**
     * 逻辑删除插件
     */
    @Bean
    public GlobalConfig globalConfig() 
        GlobalConfig globalConfig = new GlobalConfig();
        GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig();
        dbConfig.setLogicDeleteValue("Y");
        dbConfig.setLogicNotDeleteValue("N");
        globalConfig.setDbConfig(dbConfig);
        globalConfig.setSqlInjector(new LogicSqlInjector());
        return globalConfig;
    

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() 
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setDialectType(DbType.MYSQL.getDb());
        return paginationInterceptor;
    

    @Bean(name = "sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory() throws Exception 
        logger.info("初始化SqlSessionFactory");
        String mapperLocations = "classpath:mybatis/mapper/**/*.xml";
        String configLocation = "classpath:mybatis/mybatis-config.xml";
        MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(dataSource()); //数据源
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sqlSessionFactory.setMapperLocations(resolver.getResources(mapperLocations));
        sqlSessionFactory.setConfigLocation(resolver.getResource(configLocation));
        sqlSessionFactory.setTypeAliasesPackage("com.innjoy.pms.order.infrastructure.domain.model");
        sqlSessionFactory.setGlobalConfig(globalConfig());
        sqlSessionFactory.setPlugins(new Interceptor[]paginationInterceptor());
        return sqlSessionFactory.getObject();
    

 

搭建一个简单的springboot+vue+mysql|(集成mybatis-pluslombokswagger)(代码片段)

文章目录案例项目的创建1、创建SpringBoot项目1.1、新建项目1.2、添加依赖1.3、配置application.yml文件1.4、创建controller1.5、测试2、引入Swagger2.1、引入依赖2.2、Swagger配置文件2.3、Swagger注解2.4、测试3、定义统一结果3.1、引入lombok依赖3... 查看详情

搭建一个简单的springboot+vue+mysql|(集成mybatis-pluslombokswagger)(代码片段)

文章目录案例项目的创建1、创建SpringBoot项目1.1、新建项目1.2、添加依赖1.3、配置application.yml文件1.4、创建controller1.5、测试2、引入Swagger2.1、引入依赖2.2、Swagger配置文件2.3、Swagger注解2.4、测试3、定义统一结果3.1、引入lombok依赖3... 查看详情

springboot:mybatis+druid数据访问(代码片段)

SpringBoot:Mybatis+Druid数据访问文章目录SpringBoot:Mybatis+Druid数据访问1、简介2、JDBC3、CRUD操作4、自定义数据源DruidDataSource1、配置Druid数据源监控2、配置Druidweb监控filter5、SpringBoot整合mybatis1、简介​对于数据访问层... 查看详情

springboot项目自定义数据源,mybatisplus分页逻辑删除无效解决方法(代码片段)

SpringBoot项目中数据源的配置可以通过两种方式实现:1.application.yml或者application.properties配置2.注入DataSource及SqlSessionFactory两个Bean通过第二种方式配置数据源则按照MybatisPlus官方文档使用分页及逻辑删除插件会无效,解决思路是在... 查看详情

springboot项目自定义注解实现的多数据源切换(代码片段)

一、主要依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/& 查看详情

springboot系列之自定义枚举类的数据校验注解

SpringBoot系列之自定义枚举类的数据校验注解业务场景:数据校验,需要对枚举类型的数据传参,进行数据校验,不能随便传参。拓展,支持多个参数的枚举数据校验在网上找到很多参考资料,所以本博客基于这些博客进行拓展... 查看详情

springboot+mybatis多数据源切换

由于公司业务划分了多个数据库,开发一个项目会同事调用多个库,经过学习我们采用了注解+aop的方式实现的1.首先定义一个注解类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceTargetDataSource{ Stringvalue();//此处接收... 查看详情

springboot高级原理分析--自定义redis-starter(代码片段)

01:SpringBoot高级原理分析–SpringBoot自动配置:Condition02:SpringBoot高级原理分析–切换内置web服务器03:SpringBoot高级原理分析–@Enable*注解、@Import注解04:SpringBoot高级原理分析–@Import注解05:SpringBoot高级原理分析–@EnableA... 查看详情

springboot整合mybatis(代码片段)

SpringBoot整合MyBatisSpringBoot整合MyBatisSpringBoot是一个快速开发应用程序的框架,而MyBatis是一个提供ORM支持的优秀框架。在本文中,我们将学习如何将SpringBoot与MyBatis整合,以便我们能够更加轻松地开发Web应用程序。步骤创建新的Spri... 查看详情

springboot自定义配置文件数据源

参考技术ASpringBoot支持动态的读取文件,留下的扩展接口org.springframework.boot.env.EnvironmentPostProcessor。这个接口是spring包下的,使用这个进行配置文件的集中管理,而不需要每个项目都去配置配置文件。这种方法也是springboot框架留... 查看详情

springboot使用——项目启动自动执行sql脚本

...重启项目后,测试数据会初始化成最初的数据核心思想在SpringBoot的架构中,DataSourceInitializer类可以在项目启动后初始化数据,我们可以通过自动执行自定义sql脚本初始化数据。通过自定义DataSourceInitializerBean就可以实现按照业务... 查看详情

springboot入门四,添加mybatis支持

项目基本配置参考SpringBoot入门一,使用myEclipse新建一个SpringBoot项目,使用myEclipse新建一个SpringBoot项目即可。现在来给项目添加一个MyBatis支持,添加方式非常简单,仅需两步即可,具体内容如下:1.pom.xml添加以下配置信息数据源采用... 查看详情

springboot自定义start解析(start中配置从数据源)(代码片段)

​在springboot相比于springmvc提供了一个极为重要的功能,就是自定义start(自定义jar包),同时spring也提供了一大波start。如spring-boot-starter-data-redis,spring-boot-starter-amqp。本文将教你如何自定义start。例子为从star... 查看详情

springboot自定义start解析(start中配置从数据源)(代码片段)

​在springboot相比于springmvc提供了一个极为重要的功能,就是自定义start(自定义jar包),同时spring也提供了一大波start。如spring-boot-starter-data-redis,spring-boot-starter-amqp。本文将教你如何自定义start。例子为从star... 查看详情

springboot集成redis配置mybatis二级缓存(代码片段)

目录写在前面源码获取一、MyBatis缓存机制1.1、一级缓存1.2、二级缓存二、集成Redis2.1、安装Redis2.2、项目引入Redis2.2.1、Maven依赖2.2.2、配置application.yml2.2.3、配置序列化规则三、配置二级缓存2.1、开启二级缓存2.2、自定义缓存类2.3... 查看详情

mybatis自定义typehandler映射geometry空间几何数据pgpoint(java+mybatis+pgsql)(代码片段)

报错信息Typehandlerwasnullonparametermappingforproperty‘coordinates’。Itwaseithernotspecifiedand/orcouldnotbefoundforthejavaType(org.postgresql.geometric.PGpoint):jdbcType(null)combination.项目技术栈:spr 查看详情

springboot项目里,让tk-mybatis支持可以手写sql的mapper.xml文件

SpringBoot项目通常配合TKMybatis或MyBatis-Plus来做数据的持久化。对于单表的增删改查,TKMybatis优雅简洁,无需像传统mybatis那样在mapper.xml文件里定义sql。 我们目前的项目呢,有一些数据分析的需求,涉及到多表关联、嵌套子查询... 查看详情

mybatis入门(代码片段)

...门注意:此处JavaWeb项目只涉及普通Maven项目,未整合SSM、SpringBoot等1、MyBatis概述MyBatis官网:https://mybatis.org/mybatis-3/zh/index.html什么是MyBatis?MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了... 查看详情