在springboot项目中配置数据库下划线命名映射为java的驼峰命名时出错

news2024/11/17 21:28:23

问题

在使用spirngboot集成mybaits的时候,想要开启命名映射,如图配置

# mybatis配置
mybatis:
  type-aliases-package: com.zhong.springcloud.pojo
  config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mybatis/mapper/*.xml
#  命名映射
  configuration:
    map-underscore-to-camel-case: true

项目中配置了mybatis-config.xml
在这里插入图片描述
mybatis-config.xml文件中的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <settings>
        <!--        开启二级缓存-->
        <setting name="cacheEnabled" value="true"/>
    </settings>
</configuration>

错误信息

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method ‘sqlSessionFactory’ threw exception; nested exception is java.lang.IllegalStateException: Property ‘configuration’ and ‘configLocation’ can not specified with together
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185) ~[spring-beans-5.3.24.jar:5.3.24]
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-5.3.24.jar:5.3.24]
… 78 common frames omitted
Caused by: java.lang.IllegalStateException: Property ‘configuration’ and ‘configLocation’ can not specified with together
at org.springframework.util.Assert.state(Assert.java:76) ~[spring-core-5.3.24.jar:5.3.24]
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:488) ~[mybatis-spring-2.0.7.jar:2.0.7]
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:633) ~[mybatis-spring-2.0.7.jar:2.0.7]
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:188) ~[mybatis-spring-boot-autoconfigure-2.2.2.jar:2.2.2]
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB36ad62da.CGLIB$sqlSessionFactory 1 ( < g e n e r a t e d > )   [ m y b a t i s − s p r i n g − b o o t − a u t o c o n f i g u r e − 2.2.2. j a r : 2.2.2 ] a t o r g . m y b a t i s . s p r i n g . b o o t . a u t o c o n f i g u r e . M y b a t i s A u t o C o n f i g u r a t i o n 1(<generated>) ~[mybatis-spring-boot-autoconfigure-2.2.2.jar:2.2.2] at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration 1(<generated>) [mybatisspringbootautoconfigure2.2.2.jar:2.2.2]atorg.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB 36 a d 62 d a 36ad62da 36ad62da F a s t C l a s s B y S p r i n g C G L I B FastClassBySpringCGLIB FastClassBySpringCGLIB 54783 d 2 d . i n v o k e ( < g e n e r a t e d > )   [ m y b a t i s − s p r i n g − b o o t − a u t o c o n f i g u r e − 2.2.2. j a r : 2.2.2 ] a t o r g . s p r i n g f r a m e w o r k . c g l i b . p r o x y . M e t h o d P r o x y . i n v o k e S u p e r ( M e t h o d P r o x y . j a v a : 244 )   [ s p r i n g − c o r e − 5.3.24. j a r : 5.3.24 ] a t o r g . s p r i n g f r a m e w o r k . c o n t e x t . a n n o t a t i o n . C o n f i g u r a t i o n C l a s s E n h a n c e r 54783d2d.invoke(<generated>) ~[mybatis-spring-boot-autoconfigure-2.2.2.jar:2.2.2] at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) ~[spring-core-5.3.24.jar:5.3.24] at org.springframework.context.annotation.ConfigurationClassEnhancer 54783d2d.invoke(<generated>) [mybatisspringbootautoconfigure2.2.2.jar:2.2.2]atorg.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244) [springcore5.3.24.jar:5.3.24]atorg.springframework.context.annotation.ConfigurationClassEnhancerBeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331) ~[spring-context-5.3.24.jar:5.3.24]
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration E n h a n c e r B y S p r i n g C G L I B EnhancerBySpringCGLIB EnhancerBySpringCGLIB36ad62da.sqlSessionFactory() ~[mybatis-spring-boot-autoconfigure-2.2.2.jar:2.2.2]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_271]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_271]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_271]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_271]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ~[spring-beans-5.3.24.jar:5.3.24]
… 79 common frames omitted

关闭命名映射之后或者关闭配置路径之后项目正常。

原因分析

根据错误信息分析,出现该错误的原因是同时使用了configLocation和configuration属性。这两个属性是SqlSessionFactoryBean类的属性,分别用于指定MyBatis配置文件的位置和MyBatis配置对象。

在配置中,你在application.xml中指定了configLocation属性,在mybatis-config.xml中定义了MyBatis的配置对象,在applicaiton中又指定了configuration属性,因此出现了冲突。

解决方法

  1. 解决该问题的方法是,需要在应用程序中删除configLocation属性,只使用applicaiton.yml中的configuration属性来指定MyBatis的配置对象。或者不使用applicaiton.yml中的configuration属性,就可以配置config-locations并且在其中配置属性
  2. 如果需要同时启用这两个属性,则需要自定义一个MybatisConfig类,该类将扩展org.mybatis.spring.boot.autoconfigure.MybatisProperties类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/503237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…

深入理解二分类和多分类CrossEntropy Loss和Focal Loss

深入理解二分类和多分类CrossEntropy Loss和Focal Loss 二分类交叉熵 在二分的情况下&#xff0c;模型最后需要预测的结果只有两种情况&#xff0c;对于每个类别我们的预测得到的概率为 p p p和 1 − p 1-p 1−p&#xff0c;此时表达式为&#xff08; 的 log ⁡ \log log底数…

如何用ChatGP协助你,从品牌角度对产品提出升级建议?

该场景对应的关键词库&#xff08;19个&#xff09;&#xff1a; 品牌洋葱图思维模型、产品信息、人群、品类、属性、体验、差异化特征、功效、品牌价值主张、目标用户、需求、痛点、爽点、消费者、外观、功能、结构、产品优化建议、产品开发可行性。 提问模板(3个&#xff09…

《Vue.js 设计与实现》—— 01 权衡的艺术

书籍链接&#xff1a;https://weread.qq.com/web/bookDetail/c5c32170813ab7177g0181ae 框架设计里到处都体现了权衡的艺术。 当我们设计一个框架时&#xff0c;框架本身的各个模块之间并不是相互独立的&#xff0c;而是相互关联、相互制约的。 作为框架设计者&#xff0c;一…

Windows10安装免安装版redis

下载 官方下载地址&#xff1a;github.com/MicrosoftAr…选择版本 解压安装 配置环境变量&注册成服务 配置环境变量 以管理员启动命令行&#xff0c;在redis安装根目录&#xff0c;把redis注册服务 redis-server --service-install redis.windows-service.conf --lo…

Communications chemisty|德睿智药工作-用于分子性质预测的药物约束异构图Transformer模型

德睿智药的分子性质预测任务 题目&#xff1a; Pharmacophoric-constrained heterogeneous graph transformer model for molecular property prediction 文献来源&#xff1a;COMMUNICATIONS CHEMISTRY | (2023) 6:60 | 代码&#xff1a;https://github.com/stardj/PharmHG…

springboot+dubbo+zookeeper 项目实战

现在有一段代码再前台&#xff0c;后台系统中都存在&#xff0c;都需要这段代码&#xff0c;存在这种情况&#xff0c;我们可以选择将这段代码提取出来作为一个服务&#xff0c;让前台和后台系统作为消费者远程调用这段代码&#xff0c;提高了代码的复用性。 springboot集成dub…

Unity Audio -- (2)创建动态音效

评估场景需求 本节的目标是添加脚步声到角色身上&#xff0c;当角色走路时&#xff0c;触发动画事件并播放声音。 脚步声是我们在真实世界中常常被我们所忽视的声音&#xff0c;但脚步声能够传达出许多环境信息。你现在可以花一小段时间绕着你周围的环境走一走并仔细听听脚步声…

CLIP : Learning Transferable Visual Models From Natural Language Supervision

CLIP : Learning Transferable Visual Models From Natural Language Supervision IntroductionApproach Introduction 在raw的数据上自监督的训练模型&#xff0c;已经在NLP领域取得了革命性进展&#xff0c;这种模型需要收到硬件、数据的限制&#xff0c;但是能得到很好的迁…

算法 DAY55 动态规划11 392.判断子序列 115.不同的子序列

392.判断子序列 本题可以直接用双指针解法。但是本题是编辑距离的入门题目&#xff0c;故采用动态规划解法为后序“编辑距离”类题目打基础。 本题与最大子序列非常相似&#xff0c;但不同的是s必须连续&#xff0c;t可以不连续。 五部曲 1、dp[i][j] 表示以下标i-1为结尾的字…

Seata介绍

介绍&#xff1a; Seata的设计目标是对这个业务无侵入&#xff0c;因此从业务无侵入的2PC方案开始的&#xff0c;在传统的2PC的基础上演进的。它把一个分布式事务拆分理解成一个包含了若干分支事务的全局事务。全局事务的职责是协调其下管辖的分支事务达成一致性&#xff0c;要…

25.自定义注解

自定义注解 一、什么是注解 Annontation是Java1.5开始引入的新特征&#xff0c;中文名称叫注解。 它提供了一种安全的类似注释的机制&#xff0c;用来将信息或元数据&#xff08;metadata&#xff09;与程序元素&#xff08;类、方法、成员变量等&#xff09;进行关联。为程序…

大数据技术之SparkSQL——数据的读取和保存

一、通用的加载和保存方式 SparkSQL提供了通用的保存数据和数据加载的方式。根据不同的参数读取&#xff0c;并保存不同格式的数据。SparkSQL默认读取和保存的文件格式为Parquet。 1.1 加载数据 spark.read.load 是加载数据的通用方式。 如果读取不同格式的数据&#xff0c;可…

如何编译DPDK静态库

阅读前面文章https://blog.csdn.net/qq_36314864/article/details/130243348,知道了哪些dpdk文件可以在windows下生成。 打开vs,新建一个生成静态库工程,在生成的lib文件中找到D:\dpdk-21.07\build\lib D:\dpdk-21.07\build\drivers找到对应的文件,并按照路径,新建筛选项…

【Vue学习笔记7】Vue3中如何开发组件

重点学习&#xff1a;vue3.0之组件通信机制defineProps&#xff08;组件接收外部传来的参数&#xff09;、defineEmits&#xff08;向组件外部传递参数&#xff09;。 1. 评级组件第一版 简单的评级需求&#xff0c;只需要一行代码就可以实现&#xff1a; "★★★★★☆…

SLAM面试笔记(5) — ROS面试

目录 1 ROS概述 2 ROS通信机制 问题&#xff1a;服务通信概念 问题&#xff1a;服务通信理论模型 3 常见面试题 问题&#xff1a;roslaunch和rosrun区别&#xff1f; 问题&#xff1a;什么是ROS&#xff1f; 问题&#xff1a;ROS中的节点是什么&#xff1f; 问题&…

挠性航天器姿态机动动力学模型及PD鲁棒控制

挠性航天器姿态机动动力学模型及PD鲁棒控制 1挠性航天器姿态机动动力学模型2挠性航天器姿态机动PD鲁棒控制2.1 动力学模型及PD控制律2.2仿真模型2.3 控制程序2.4 被控对象程序2.5 绘图程序2.6 结果 1挠性航天器姿态机动动力学模型 2挠性航天器姿态机动PD鲁棒控制 2.1 动力学模…

【NLP开发】Python实现聊天机器人(ChatterBot,集成web服务)

&#x1f37a;NLP开发系列相关文章编写如下&#x1f37a;&#xff1a; &#x1f388;【NLP开发】Python实现词云图&#x1f388;&#x1f388;【NLP开发】Python实现图片文字识别&#x1f388;&#x1f388;【NLP开发】Python实现中文、英文分词&#x1f388;&#x1f388;【N…

澳大利亚兔灾和——栈?

一.背景 1859年&#xff0c;当一位叫托马斯奥斯汀的农民收到英国老家送来的24只野兔并将它们放归农场的时候&#xff0c;他绝对意想不到&#xff0c;这些看似人畜无害的小兔子&#xff0c;竟为古老的澳洲大陆带来一场巨大的生态破坏。到20世纪初&#xff0c;澳大利亚的兔子数量…

操作系统内存管理(上)——内存管理基础

一、内存的基本知识 1.什么是内存&#xff1f;有什么作用&#xff1f; 内存可存放数据。程序执行前先放到内存才能被CPU处理——缓和CPU和硬盘之间的速度矛盾。 给内存的存储单元编址。如果计算机按字节编址&#xff0c;则每个存储单元大小为1字节。即1B8b&#xff08;8个二进…