javacomparator_mybatis是做什么的

javacomparator_mybatis是做什么的Myabatis-Plus集成异常下面贴出错误信息:java.lang.NoSuchMethodError:com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(Ljava/lang/CharSequence;)Z11:29:34.886[main]DEBUGorg.springframework.boot.context.logging.ClasspathLoggingApplicationListener-Appli

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Myabatis-Plus集成异常

下面贴出错误信息 : java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(Ljava/lang/CharSequence;)Z

11:29:34.886 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListener - Application failed to start with classpath: unknown
11:29:35.129 [background-preinit] DEBUG org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator - Loaded expression factory via original TCCL
11:29:35.188 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator as ValidatorFactory-scoped message interpolator.
11:29:35.188 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.resolver.JPATraversableResolver as ValidatorFactory-scoped traversable resolver.
11:29:35.188 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.util.ExecutableParameterNameProvider as ValidatorFactory-scoped parameter name provider.
11:29:35.189 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.DefaultClockProvider as ValidatorFactory-scoped clock provider.
11:29:35.189 [background-preinit] DEBUG org.hibernate.validator.internal.engine.ValidatorFactoryImpl - HV000234: Using org.hibernate.validator.internal.engine.scripting.DefaultScriptEvaluatorFactory as ValidatorFactory-scoped script evaluator factory.
11:29:37.476 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.isNotBlank(Ljava/lang/CharSequence;)Z
  at com.baomidou.mybatisplus.autoconfigure.SafetyEncryptProcessor.postProcessEnvironment(SafetyEncryptProcessor.java:55)
  at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:179)
  at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:165)
  at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
  at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
  at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
  at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
  at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
  at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
  at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
  at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
  at com.lenovo.hawk.HawkPaDashboardApplication.main(HawkPaDashboardApplication.java:38)
Disconnected from the target VM, address: '127.0.0.1:56249', transport: 'socket'

可以看到是没有isNotBlank这个方法, mybatis-plus依赖包找不到这个方法,即版本兼容问题,mybatis-plus 的版本与mybatis-plus-boot-starter 版本不兼容。

         /**
         * 处理加密内容
         */
        if (StringUtils.isNotBlank(mpwKey)) {
            HashMap<String, Object> map = new HashMap<>();
            for (PropertySource<?> ps : environment.getPropertySources()) {
                if (ps instanceof OriginTrackedMapPropertySource) {
                    OriginTrackedMapPropertySource source = (OriginTrackedMapPropertySource) ps;
                    for (String name : source.getPropertyNames()) {
                        Object value = source.getProperty(name);
                        if (value instanceof String) {
                            String str = (String) value;
                            if (str.startsWith("mpw:")) {
                                map.put(name, AES.decrypt(str.substring(4), mpwKey));
                            }
                        }
                    }
                }
            }   

版本兼容问题解决

修改mybatis-plus解决 , 下面贴出集成的mybatis-plus全部依赖

	    <!-- mybatis-plus集成依赖包 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.0</version>
        </dependency>
        <!-- mybatis-plus分页插件 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.4.0</version>
        </dependency>

mybatis-plus集成分页插件问题

由于我使用的是最新的3.4版本,所以PaginationInterceptor 在该jar包中过期,下面贴出解决方案

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * mybatis-plus 集成分页插件配置
 * @Auther Hsg
 * @Date 2020/09/07
 */
@Configuration
public class MybatisPlusConfig {

    @Bean
    public MybatisPlusInterceptor paginationInterceptor(){
        return new MybatisPlusInterceptor();
    }

}

封装查询方法修改

由于使用的版本比较新,对应的 new EntityWrapper<>()方法不可用替换为 new QueryWrapper<>()给出一个简单的用例

@Service
@Transactional(readOnly = false)
public class CompanyServiceImpl implements CompanyService {

    @Autowired
    CompanyMapper companyMapper;

    public Integer findCount(){
        return companyMapper.findCount();
    }

    @Override
    public IPage<Company> findByPage() {
        Page<Company> page = new Page<>(0, 2);
        QueryWrapper<Company> query = new QueryWrapper<>();
        query.orderByDesc("name");
        IPage<Company> pageResult = companyMapper.selectPage(page, query);
        return pageResult;
    }

}

配置相关(yaml)

由于项目刚刚搭建完成,此处贴出一些重要的配置信息,后续额外配置需要在一一添加

#配置mybatis-plus相关属性
mybatis-plus:
  #配置mapper.xml文件读取位置信息
  mapper-locations: classpath*:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.lenovo.hawk.mapper
  # 全局mapper映射数据库配置
  global-config:
    db-config:
      #主键生成策略
      id-type: UUID
      #数据库大写下划线转换
      capital-mode: true
      #配置逻辑删除字段
      logic-delete-value: 1
      logic-not-delete-value: 0
    refresh: true
  configuration:
    #配置返回数据库(column下划线 -> java驼峰式)
    map-underscore-to-camel-case: true
    #缓存配置false,默认全部重新读取
    cache-enabled: false

至此Mybatis-Plus集成完成,实现简单的CRUD以及分页查询功能

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169996.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • XSS跨站脚本攻击剖析与防御(跨站脚本攻击漏洞怎么修复)

    XSS(跨站脚本)漏洞详解XSS的原理和分类跨站脚本攻击XSS(CrossSiteScripting),为了不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户…

    2022年4月18日
  • linux安装rabbitmq教程(rabbitmq中文文档)

    一、准备依赖包yuminstallbuild-essentialopensslopenssl-develunixODBCunixODBC-develmakegccgcc-c++kernel-develm4ncurses-develtktcxz二、下载erlang-18.3-1wgetwww.rabbitmq.com/releases/erlang…

    2022年4月11日
  • 2019年长沙前端技术分享大会圆满成功

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!本文首发: 唐胡子俱乐部,授权发布!摘要长沙百名互联网前端程序员齐聚长沙互联网活动基地(唐胡子俱乐部)。主办单位:唐胡子俱乐部支持单位:芒果TV,拓维,湘邮,58到家,御泥坊,兴盛优选,中软国际,长海科技,长沙联通时 间:2019年5月19日—————————-…

    2022年2月28日
  • PID控制的MATLAB仿真(1)

    PID控制的MATLAB仿真(1)PID控制应用广泛,说起来PID特别的简单,在比例负反馈的基础上加入微分项实现快速调节,加入积分项实现无静差。MATLAB强大的功能让学习变得非常简单。在学习智能控制这门课的时候,老师推荐了刘金琨老师的先进PID控制一书,边看边学边调程序。下文程序选自此书。首先从模拟PID开始,被控系统一般是下图这种结构:其中PID控制器:一种用模拟PID控制的磁悬浮:电路图左侧是霍尔传

    2022年5月24日
  • JavaScript 基本知识

    JavaScript 基本知识bilibiliJS视频链接:https://www.bilibili.com/video/BV1W54y1J7Ed?p=2&spm_id_from=pageDrivervscode配置html:https://blog.csdn.net/caohongxing/article/details/108632859目录JS来源JavaScript核心由三部分组成书写位置:行内式,内嵌式,外链式变量:var准备一个容器,变量名有规格且区分大小写JS中的数据:基本数据类型和引用数据类型.

    2022年10月20日
  • weblogic EJB 学习

    weblogic EJB 学习EJB学习笔记1、ejb基础知识(1)无状态会话bean不保存客户机的会话状态优点:使用小量的实例即可满足大量的客户。每个实例都没有标识,相互之间是等价的。等?的无状态会话bean:多次和一次调用的结果和效应相同。在集群中可以负载均衡a机器失败,可以在b机器上重试非等?的无状态会话bean:如:计数器…

    2022年9月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号