Mybatis框架学习(2)--结果集映射ResultMap
说明:本文档所需要解决的问题是:实体类属性名和数据库表中字段名不一致的情形。
一、环境搭建
- 搭建实验所需的数据库和表
在pom.xml文件中导入Mybatis的相关依赖
- mybatis、mysql-connector-java(java连接MySql所需要的驱动)
编写Mybatis的核心配置文件--参考Mybatis的官方文档
- environments
- typeAliases
- setting
- properties
- mappers
- ...
- 编写Mybatis工具类
- 实体类以及操作数据库的Mapper接口--实体类中属性名称与数据库表中的字段名称不相同
- Mapper.xml配置文件的编写
二、实验详情
1、数据库中表中的字段名如下图所示:
2、java实体类的设计--实体类的属性与表中的字段名称不一致
1publicclass Books { 23private Integer id;
4private String name;
5private Integer counts;
6private String detail;
7
8public Books() {
9 }
10
11public Books(Integer id, String name, Integer counts, String detail) {
12this.id = id;
13this.name = name;
14this.counts = counts;
15this.detail = detail;
16 }
17
18public Integer getId() {
19return id;
20 }
21
22publicvoid setId(Integer id) {
23this.id = id;
24 }
25
26public String getName() {
27return name;
28 }
29
30publicvoid setName(String name) {
31this.name = name;
32 }
33
34public Integer getCounts() {
35return counts;
36 }
37
38publicvoid setCounts(Integer counts) {
39this.counts = counts;
40 }
41
42public String getDetail() {
43return detail;
44 }
45
46publicvoid setDetail(String detail) {
47this.detail = detail;
48 }
49
50 @Override
51public String toString() {
52return "Books{" +
53 "id=" + id +
54 ", name='" + name + '\'' +
55 ", counts=" + counts +
56 ", detail='" + detail + '\'' +
57 '}';
58 }
59 }
3、Mapper接口
1public Books findBookByID(int id);
4、Mapper映射文件--未添加结果集映射
由于实体类的属性与表中的字段名称不一致,因此查询出的书籍id、name以及counts将为空。
5、解决方案
方案一:
通过为表中的列名器别名的方式,别名和java实体类中的属性名名称一致;
方案二:
使用结果集映射--resultMap
以上是 Mybatis框架学习(2)--结果集映射ResultMap 的全部内容, 来源链接: utcz.com/a/71761.html