mybaits-plus常见配置

简介: mybaits-plus常见配置

mybaitsplus常见配置


在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情请看官网的文档: https://baomidou.com/pages/56bac0/


下面我们对常用的配置做讲解。


configLocations


configLocations即MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation 中。 MyBatis Configuration 的具体内容请参考MyBatis 官方文档


示例: 1 在resources下创建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>
        <!--mapUnderscoreToCamelCase=true-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    <!--<plugins>-->
    <!--<plugin interceptor="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"></plugin>-->
    <!--</plugins>-->
</configuration>


在application.properties下配置configLocations,如下:


#指定mybatis-config.xml的位置
mybatis-plus.config-location = classpath:mybatis/mybatis-config.xml



mapperLocations


#指定mapper文件位置
mybatis-plus.mapper-locations = classpath*:mybatis/mapper/*.xml


mapperLocations即MyBatis Mapper 所对应的 mapper配置 文件位置,如果您在 Mapper 中有自定义方法 (XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。


如果不配置mapperLocations时,mapper的xml文件存放路径需要和mapper class文件保持一致,文件名保持 一 致,如下:(还是配置好一些)



mapper.xml代码案例


新建UserMapper.xml:


可以将此文件放在resources/cn/itcast/mp/mapper下,这里我们直接放到mybatis/mapper/UserMapper.xml下,然后进行配置


#指定mapper文件位置
mybatis-plus.mapper-locations = classpath*:mybatis/mapper/*.xml


在UserMapper.xml写入


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.itcast.mp.mapper.UserMapper">
    <select id="findById" resultType="user" parameterType="java.lang.Long">
      select * from tb_user where id = #{id}
    </select>
</mapper>


在UserMapper接口类中新增findById方法


package cn.itcast.mp.mapper;
import cn.itcast.mp.pojo.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
 * Created by Administrator.
 */
public interface UserMapper extends BaseMapper<User> {
    public User findById(Long id);
}


在测试类中添加查找id 的方法


代码如下:


@Test
public void testFindByid(){
    //查询tb_user记录
    User user = userMapper.findById(2L);
    System.out.println(user.toString());
}


运行结果:



注意:Maven 多模块项目的扫描路径需以 classpath*: 开头 (即加载多个 jar 包下的 XML 文件)


typeAliasesPackage


设置MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以 直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)


mybatis‐plus.type‐aliases‐package = cn.itcast.mp.pojo


mapUnderscoreToCamelCase


类型: boolean


默认值: true


是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。


注意: 在 MyBatis-Plus 中此属性默认值为true,用于生成最终的 SQL 语句 如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名


#开启自动驼峰映射
#mybatis-plus.configuration.map-underscore-to-camel-case=true


注意:配置configuration.map-underscore-to-camel-case则不能配置config-location


那么配置了config-location,在想配置mapUnderscoreToCamelCase 怎么办呢?


    <settings>
        <!--mapUnderscoreToCamelCase=true-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>


就可以了


开启了自动转驼峰, 我们就可以屏蔽@TableField了,



再进行测试,没有问题




如果项目中有符合驼峰规则的定义也有不符合的,此时建议统一使用@TableField。

如果使用mybatis-config.xml的同时在application.properties配置mybatis-plus.configuration则报错


Property 'configuration' and 'configLocation' can not specified with together 


解决方法: 只使用一种配置方法。


本案例屏蔽mybatis-plus.configuration.map-underscore-to-camel-case=true,在mybatis-config.xml中配置 settings。


<settings> 
  <setting name="mapUnderscoreToCamelCase" value="true"/> 
</settings>
相关文章
|
存储 Linux 虚拟化
开源虚拟化平台oVirt4.3简单搭建实践(下)
开源虚拟化平台oVirt4.3简单搭建实践(下)
1686 0
开源虚拟化平台oVirt4.3简单搭建实践(下)
|
移动开发 JavaScript 前端开发
Element Plus for Vue 3 入门教程
Element Plus 是为了适配 Vue 3 对 Element UI 进行的重构。Vue 3.0 的这次大版本升级,对于第三方组件库来说是一件好事,那些已经修修补补无数次,还无法彻底解决的问题,在这次面向 Vue 3.0 重构时,一次性全部解决。
3842 0
|
2月前
|
存储 Linux 开发工具
Linux环境下使用Buildroot配置软件包
使用Buildroot可以大大简化嵌入式Linux系统的开发和维护工作,但它需要对Linux系统和交叉编译有深入的理解。通过上述步骤,可以有效地配置和定制软件包,为特定的嵌入式应用构建高效、稳定的系统。
346 11
|
6月前
|
人工智能 5G 定位技术
如何使用基站查询API帮你解析地理位置?
随着“新基建”战略推进,我国已建成全球领先的移动通信网络。基于基站数据的LBS定位服务成为各行业数字化转型的重要工具。探数平台基站查询API整合三大运营商数据,提供高精度、低延迟的地理位置查询服务,广泛应用于位置推荐、物流追踪等领域。本文详细介绍该API的核心功能、返回字段及调用流程,并通过Python示例展示使用方法。未来,随着5G和AI技术发展,基站定位将迈向厘米级精度,赋能自动驾驶、工业物联网等前沿领域,助力开发者抢占位置经济的战略高地。
1635 1
|
人工智能 自然语言处理 前端开发
从文案到设计,我用通义版Artifacts生成了365张灵感日历
本文介绍了如何利用通义AI的“代码模式”功能,轻松制作个性化日历。作者通过实例展示了从设计日历样式、推荐每日生活小事到赋予小事新解的过程,强调了AI在创意实现上的强大助力。此外,还探讨了AI代码生成技术对未来创造力的影响,以及通义AI代码模式如何降低创作门槛,提高效率,让每个人都能成为应用开发者。
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
612 4
|
存储 资源调度 算法
m基于FPGA和IP核的RS编译码verilog实现,包含testbench测试文件
m基于FPGA和IP核的RS编译码verilog实现,包含testbench测试文件
364 1
|
XML SQL Java
springboot 日志配置(logback)(二)
springboot 日志配置(logback)(二)
985 0
|
安全 Java 测试技术
【开题报告】基于SpringBoot的民宿在线预定系统的设计与实现
【开题报告】基于SpringBoot的民宿在线预定系统的设计与实现
992 0