Mybatis框架学习(2)--结果集映射ResultMap

说明:本文档所需要解决的问题是:实体类属性名和数据库表中字段名不一致的情形。

一、环境搭建

 

  • 搭建实验所需的数据库和表
  • 在pom.xml文件中导入Mybatis的相关依赖

    • mybatis、mysql-connector-java(java连接MySql所需要的驱动)

  • 编写Mybatis的核心配置文件--参考Mybatis的官方文档

    • environments
    • typeAliases
    • setting
    • properties
    • mappers
    • ...

  • 编写Mybatis工具类
  • 实体类以及操作数据库的Mapper接口--实体类中属性名称与数据库表中的字段名称不相同
  • Mapper.xml配置文件的编写

二、实验详情

1、数据库中表中的字段名如下图所示:

Mybatis框架学习(2)--结果集映射ResultMap

 

 2、java实体类的设计--实体类的属性与表中的字段名称不一致

 1publicclass Books {

2

3private 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

回到顶部