【Mybatis-Plus】Spring整合 駝峰命名設置失效問題


查詢時發現這個問題:

DEBUG [main] - Creating a new SqlSession DEBUG [main] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ef74c30] was not registered for synchronization because synchronization is not active DEBUG [main] - Fetching JDBC Connection from DataSource DEBUG [main] - Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/oa?serverTimezone=GMT] DEBUG [main] - JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@319bc845] will not be managed by Spring DEBUG [main] - ==> Preparing: SELECT user_id,user_name,user_password,user_status,user_is_del FROM sys_user WHERE user_id=? DEBUG [main] - ==> Parameters: 3(Integer) DEBUG [main] - <== Total: 1 DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ef74c30] null

我們的User實體類完全符合表字段名稱,一模一樣

到這里我就多半猜到是駝峰自動匹配了,數據庫表字段是ab_cdef_ghij這樣的命名規范的

Mybatis-Plus直接給Java轉換成abCdefGhij這樣了

找不到關於MybatisPlus在Spring中是如何取消駝峰配置的,可以做的是改變實體類屬性為駝峰符合的命名:

再次測試的結果:

DEBUG [main] - Creating a new SqlSession DEBUG [main] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d61eb55] was not registered for synchronization because synchronization is not active DEBUG [main] - Fetching JDBC Connection from DataSource DEBUG [main] - Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/oa?serverTimezone=GMT] DEBUG [main] - JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@58ffcbd7] will not be managed by Spring DEBUG [main] - ==> Preparing: SELECT user_id,user_name,user_password,user_status,user_is_del FROM sys_user WHERE user_id=? DEBUG [main] - ==> Parameters: 3(Integer) DEBUG [main] - <== Total: 1 DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d61eb55] User(userId=3, userName=user02, userPassword=123456, userStatus=1, userIsDel=0)

 

終於在百度各種博客帖子查不到我想要的答案之后,直奔官方文檔的解釋查看:

https://mp.baomidou.com/config/#configuration

也就是說我需要使用原生Mybatis的XML文件來配置

上面的注解@TableField也不需要

 

然后再往上翻,基本配置中找到了:

可是我就算這樣配置了也照樣沒用啊???

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd

       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
"
>
    <!--
        dao層的配置:核心是要產生
        Mapper代理類對象
        1.引入數據庫配置信息
        2.數據源配置
        3.SqlSessionFactory
        4.產生Mapper接口的代理類對象
    -->

    <!-- 1.引入數據庫配置信息 -->
    <context:property-placeholder location="classpath:db.properties" system-properties-mode="FALLBACK" />

    <!--2.數據源配置 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>

    <!-- 3.SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource" />
        <property name="globalConfig" ref="globalConfig" />
 <property name="configuration" ref="configuration" />

        <!-- 加載xxMapper.xml -->
        <property name="mapperLocations">
            <array>
                <value>classpath:mybatis/mapper/*Mapper.xml</value>
            </array>
        </property>

        <!-- 配置分頁插件 -->
        <property name="plugins">
            <array>
                <bean class="com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor"/>
            </array>
        </property>
    </bean>

 <bean id="configuration" class="com.baomidou.mybatisplus.core.MybatisConfiguration"> <property name="mapUnderscoreToCamelCase" value="false" /> </bean>

    <!-- 聲明全局配置 -->
    <bean id="globalConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
        <!-- 指定主鍵自動增長類型 -->
        <property name="dbConfig" ref="dbConfig" />
    </bean>

    <bean id="dbConfig" class="com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig">
        <property name="idType" value="AUTO" />
    </bean>

    <!-- 4.產生Mapper接口的代理類對象 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 需要生成代理類對象的mapper接口包 -->
        <property name="basePackage" value="cn.echo42.mapper" />
        <!-- sqlSessionFactory 的name 用於為代理類中生成SqlSession -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
</beans>

測試結果:

DEBUG [main] - Creating a new SqlSession DEBUG [main] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d61eb55] was not registered for synchronization because synchronization is not active DEBUG [main] - Fetching JDBC Connection from DataSource DEBUG [main] - Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/oa?serverTimezone=GMT] DEBUG [main] - JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@58ffcbd7] will not be managed by Spring DEBUG [main] - ==> Preparing: SELECT user_id,user_name,user_password,user_status,user_is_del FROM sys_user WHERE user_id=? DEBUG [main] - ==> Parameters: 3(Integer) DEBUG [main] - <== Total: 1 DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d61eb55] null

 

暫時使用駝峰規則來使用了。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM