查詢時發現這個問題:
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
暫時使用駝峰規則來使用了。。。