<bean id="globalConfig" class="com.baomidou.mybatisplus.entity.GlobalConfiguration"> <!-- AUTO->`0`("数据库ID自增") INPUT->`1`(用户输入ID") ID_WORKER->`2`("全局惟一ID") UUID->`3`("全局惟一ID") --> <property name="idType" value="2" /> <!-- 驼峰转换 true --> <property name="dbColumnUnderline" value="true" /> </bean>
<select id="selectAllUser" resultType="UsersEntity"> select u.user_id,u.name,u.phone,u.sex,u.id_card,u.email,u.country,u.integral,u.state,u.create_time from users u </select>
发现全部有下划线的列名不对对应到实体的属性名。除非将有下划线的属性名写成相似 u.user_id as userId,才能映射出来。javascript
若是有设置resultMap,直接将sql改成下面这样也行。html
<select id="selectAllUser" resultMap="usersMap"> select u.user_id,u.name,u.phone,u.sex,u.id_card,u.email,u.country,u.integral,u.state,u.create_time from users u </select>
在mybatis-config.xml文件里配置:java
<configuration> <!-- 全局配置 --> <settings> <!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典Java 属性名 aColumn 的相似映射。 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
在Spring-Mybatis.xml中配置SqlSessionFactory:mysql
<!-- 3.配置SqlSessionFactory对象 --> <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"> <!-- 注入数据库链接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置MyBaties全局配置文件:mybatis-config.xml --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 扫描pojo包 使用别名 --> <property name="typeAliasesPackage" value="com.jc.JunJian.backend.*.entity"/> <!-- 扫描sql配置文件:mapper须要的xml文件 --> <property name="mapperLocations" value="classpath:mapper/*/*/*Dao.xml"/> <property name="plugins"> <array> <!-- 分页插件配置 --> <bean id="paginationInterceptor" class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"> <property name="dialectType" value="mysql"/> </bean> </array> </property> <!-- 全局配置注入 --> <property name="globalConfig" ref="globalConfig" /> </bean>
疑问:mybatis的全局配置设置了驼峰转换,为何不生效呢?有大佬知道缘由吗?spring