Mybatis框架之解决列名(表中的字段名称)和实体类中的属性名不一致

查询数据的时候,查不到userName的信息,原因:数据库的字段名是user_name,而POJO中的属性名字是userName
两端不一致,造成mybatis无法填充对应的字段信息。修改方法:在sql语句中使用别名
解决方案1:在sql语句中使用别名
解决方案2:参考驼峰匹配 — mybatis-config.xml 的时候



解决方案3:resultMap自定义映射
示例:
步骤一:将驼峰匹配注释掉
一旦注释掉驼峰匹配,那么再通过queryUserById查询的结果中,用户名就无法封装了,此时我们可以尝试使用ResultMap来解决这个问题。

Mybatis框架之解决列名(表中的字段名称)和实体类中的属性名不一致_第1张图片步骤二:在UserMapper.xml中配置resultMap


	
	
	
	

步骤三:在statement中引用自定义resultMap

select * from tb_user where id = #{id} 测试无误 注意:测试完记得将驼峰命名的配置重新开启,因为其他的测试方法还要用。 **resultMap的自动映射** 在上面讲到的resultMap中,主键需要通过id子标签配置,表字段和属性名不一致的普通字段需要通过result子标签配置。 那么,字段和属性名称都匹配的字段要不要配置?

这个取决于resultMap中的autoMapping属性的值:
为true时:resultMap中的没有配置的字段会自动对应。如果不配置,则默认为true。
为false时:只针对resultMap中已经配置的字段作映射。

你可能感兴趣的:(Mybatis框架,Mybatis)