mybatis查询时实体类属性名与表的字段名不一致的解决方法
目录
1、设置查询字段别名法
2、在mybatis的核心配置文件中设置全局配置信息mapUnderscoreToCamelCase为true,将表中字段的下划线自动转换为驼峰
3、将select语句的resultType换为resultMap,在resultMap中配置字段名和属性值的对应关系
————————————————
问题描述:在使用mybatis进行数据查询时,我们常常遇到实体类属性名与表的字段名不一致的问题,这里将介绍几种方法帮助我们解决这个问题
左边为实体类属性名,右边为表的字段名,我们发现属性名empName与emp_name不一致,如果直接进行查询的话返回对象的empName属性值为空,接下来介绍解决方法:
1、设置查询字段别名法
我们通过将不一致的字段设置别名,并且别名与对应类的属性名一致,如下所示:
通过这个方法的查询结果为:
2、在mybatis的核心配置文件中设置全局配置信息mapUnderscoreToCamelCase为true,将表中字段的下划线自动转换为驼峰(一般默认支持)
在核心配置文件中配置如下信息:
mapper映射文件如下:
查询结果为:
注意:此方法仅适用于字段名的下划线转化为驼峰后恰好与类的属性名一致的情况
3、将select语句的resultType换为resultMap,在resultMap中配置字段名和属性值的对应关系
设置如下:
4、也可以在实体类中用注解,对应数据表真是值
@Repository @Data @AllArgsConstructor @NoArgsConstructor @TableName(value = "admins", keepGlobalPrefix = true) public class AdminsEntity implements Serializable { @TableId(type = IdType.AUTO) private Integer id; //默认驼峰转换成:user_name private String userName; //字段按照password查 @TableField(value = "password") private String passWord; //并且查询操作不显示 @TableField(value = "real_name",select = false) private String RealName; private String email; private LocalDateTime createTime; private LocalDateTime lastTime; }
转 : https://blog.csdn.net/qq_45849148/article/details/125730885