mybatis的mapper.xml中resultMap标签的使用
1.前言
最近博主在做一个ssm框架的共享汽车管理系统,其中,数据库字段设计的有下划线方式,a_username,然后在写mapper.xml里面的sql语句的时候,一直出现查询语句查询的值为null的情况。或者是resultMap标签和驼峰规则不太明白的同学,可以看这里。
于是顺便梳理一下。
2.关于resultMap
2.1.什么是resultMap?
在mybatis中有一个resultMap标签,它是为了映射select查询出来结果的集合,其主要作用是将实体类中的字段与数据库表中的字段进行关联映射。
注意:
当实体类中的字段与数据库表中的字段相同时,可以将resultMap标签中的关联关系忽略不写。
当实体类中的字段与数据库表中的字段不相同时,就需要在resultMap标签中将实体类字段与数据库字段一 一进行关联映射,或者开启驼峰规则,让它自动转换。
3.举例说明
3.1.数据库与实体类之间名称相同
数据库这么写:
然后对应写的实体类:
在mapper中的查询方式:
可以看到,是最常规的sql查询写法,这样就能正常的查询到数据库的数据。
当然这个时候开不开启驼峰规则都可以,比如在mybatis的配置文件中声明开启,也是一样的效果。
这是为什么呢?
顺便说几个关于实体类、数据库、json格式的知识。
- 数据库字段、索引对大小写是不敏感的,驼峰标识无意义;也就是你开不开启实际上都一样。
- json 的规范格式是带有下划线的;比如:
`{“id”:”1234”
“user_name”:”Lilan”;}数据库字段和 bean 之间字段转换,主流 orm 工具都有映射转换支持,比如上图mybatis中开启的驼峰规则;
json 和 bean 之间字段转换,可以使用注解 @JsonProperty,比如写实体类的时候:
@JsonProperty("user_name")
private String userName;
<