项⽬踩坑之MyBatis转换⼤⼩写问题
项⽬踩坑之MyBatis 转换⼤⼩写问题
由于在Windows环境下MySQL数据库不严格区分⼤⼩写,所以我们在对数据库的表和字段进⾏命名时两个单词之间都是使⽤下划
线“_”的,⽐如“ur_name”。但是,我们在项⽬开发时,为了遵守代码规范,实体类中的属性采⽤的都是驼峰式命名。这
样,MyBatis可能就会报错没有该属性的get和t⽅法。
解决⽅法:
1.使⽤resultMap,通过resultMap中的column值(数据库字段名)和property值(实体类属性名)进⾏⼀⼀映射。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UrMapper">
<resultMap id="BaResultMap" type="com.domain.Ur">眼镜的利润
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="ur_name" jdbcType="VARCHAR" property="urName"/>
<result column="password" jdbcType="VARCHAR" property="password"/>
普通话朗读</resultMap>
<lect id="xxx" parameterType="xxx" resultMap="BaResultMap">
......忍耐英文
</lect>
2.对MyBatis进⾏配置:
(1)在l配置⽂件中添加以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC"-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd">
<configuration>
<!--配置mybatis⾃动转换为驼峰命名-->
<ttings>
<tting name="mapUnderscoreToCamelCa" value="true"/>
</ttings>
</configuration>
(2) 在l⽂件中进⾏配置:
#mybatis配置
mybatis:
configuration:
map-underscore-to-camel-ca:true
其中的map-underscore-to-camel-ca也可以写成mapUnderscoreToCamelCa(未尝试),然后MyBatis的xml⽂件中直接使⽤对应的实体类来接收数据。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UrMapper">
考驾照体检什么<lect id="xxx" parameterType="xxx" resultType="Ur">
......
</lect>
第(1)种⽅式和第(2)种⽅式同时配置时,第(2)种⽅式的优先级更⾼。(参考其他博客)
3.⾃定义配置类的⽅式配置:给容器中添加⼀个ConfigurationCustomizer。
@Configuration
public class MyBatisConfig {
包包图片
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer(){
@Override佐久夜
public void customize(org.apache.ibatis.ssion.Configuration configuration){ configuration.tMapUnderscoreToCamelCa(true);
双端面机械密封}
};
}
}烘烤饼干