使用 SpringBoot 整合 MyBatis 开发时,发现从数据库中查询到的结果封装到javabean中,只要表中有下划线的字段,就会出现null值
MyBatis默认是属性名和数据库字段名一一对应的,即
数据库表列:user_name
实体类属性:user_name
但是java中一般使用驼峰命名
数据库表列:user_name
实体类属性:userName
例如,在写注解式的Mapper代码时:
@Select("select * from kunlun_result where id=#{resultId} limit 1") KunlunResultWithBLOBs findById(Long resultId);
上面的KunlunResultWithBLOBs对象的值要想正常映射上, 就需要开启驼峰映射功能.
在SpringBoot中,可以通过设置map-underscore-to-camel-case属性为true来开启驼峰功能:
mybatis: mapper-locations: classpath:mapper/*.xml#注意:一定要对应mapper映射xml文件的所在路径 configuration: map-underscore-to-camel-case: true # 开启驼峰命名