• SpringBoot中mybatis配置自动转换驼峰标识没有生效


    mybatis提供了一个配置:

    #开启驼峰命名转换
    mybatis.configuration.map-underscore-to-camel-case=true

    使用该配置可以让mybatis自动将SQL中查出来的带下划线的字段,转换为驼峰标志,再去匹配类中的属性。

    即:

    @Select("select phone_num,card_num from xxx where id=#{id}")
    
    public User getUserInfo(String id);

    查出来的结果,会被自动转换成phonenumcardnum,再和结果类(这里就是User )中的属性进行匹配。

    更多和自动转换驼峰标志相关的详细源码分析可以参考:传送门

    ————————————————————分割线—————————————————

    下面我们说说我这次碰到的奇怪问题:

    在我的项目中,明明在application.properties中将这个属性设为了true,结果运行到上文截图57行代码时始终为false,导致后边无法找到匹配的属性。

    经过一番DEBUG分析,发现项目为了做多数据源,将生成

    org.apache.ibatis.session.SqlSessionFactory

    的配置抽出到使用@Configuration修饰的配置类中。

    application.properties配置文件中关于驼峰转换的配置内容没有放进去。这些错误的代码我就不在这贴了,直接上改善后的代码:

    经过调整之后变成了以下形式:

    将application.properties  mybatis的congfig加载到类中,再注入到SqlSessionFactoryBean中,问题解决。

  • 相关阅读:
    lsblk命令详解
    lspci命令详解
    numastat命令详解
    lsscsi命令详解
    lscpu命令详解
    linux内核模块相关命令:lsmod,depmod,modprobe,modinfo,insmod,rmmod 使用说明
    elk收集tomcat的日志
    npm安装
    centos7.5 解决缺少libstdc++.so.6库的原因及解决办法
    linux下正确卸载rpm包
  • 原文地址:https://www.cnblogs.com/flying607/p/8473075.html
Copyright © 2020-2023  润新知