项⽬踩坑之MyBatis转换⼤⼩写问题
项⽬踩坑之MyBatis 转换⼤⼩写问题
vent
由于在Windows环境下MySQL数据库不严格区分⼤⼩写,所以我们在对数据库的表和字段进⾏命名时两个单词之间都是使⽤下划
anz
线“_”的,⽐如“ur_name”。但是,我们在项⽬开发时,为了遵守代码规范,实体类中的属性采⽤的都是驼峰式命名。这
样,MyBatis可能就会报错没有该属性的get和t⽅法。
解决⽅法:
1.使⽤resultMap,通过resultMap中的column值(数据库字段名)和property值(实体类属性名)进⾏⼀⼀映射。
ecw<?xml version="1.0" encoding="UTF-8"?>
解释英语
american eagle<!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配置⽂件中添加以下代码:
magic eye
<?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"/>
amountof</ttings>
</configuration>
(2) 在l⽂件中进⾏配置:
#mybatis配置
dwzmybatis:
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>
ache什么意思第(1)种⽅式和第(2)种⽅式同时配置时,第(2)种⽅式的优先级更⾼。(参考其他博客)
3.⾃定义配置类的⽅式配置:给容器中添加⼀个ConfigurationCustomizer。
@Configuration
public class MyBatisConfig {
@Bean
trarpublic ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer(){
@Override
public void customize(org.apache.ibatis.ssion.Configuration configuration){ configuration.tMapUnderscoreToCamelCa(true);
}
};
}
}