09.输入输出映射

1.输入映射

通过parameterType指定输入参数类型,类型可以是简单类型、hashmap、pojo的包装类型。

1)传递pojo包装对象

  • 需求
    完成用户信息综合查询,需要传入查询条件(可能包括用户信息、其他信息)
  • 定义包装类型pojo
    针对上边需求,建议使用自定义的包装类型pojo。在包装类型的pojo中将复杂的查询条件包装进去。
09.输入输出映射_第1张图片
  • mapper.xml
    在UserMapper中定义用户信息综合查询(查询条件复杂,需要关联查询)
09.输入输出映射_第2张图片
  • mapper.java
09.输入输出映射_第3张图片
图片.png

2)传递hashmap


2.输出映射

1)resultType

使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。
如果查询出来的列明和pojo中的属性名全部不一致,没有创建pojo对象。
只要查询出来的列名和pojo中的属性有一个一致,就会创建pojo对象。

09.输入输出映射_第4张图片
09.输入输出映射_第5张图片
  • 不管是输出的pojo是单个对象还是一个列表(list中包括pojo),在mapper.xml中resultType指定的类型都一样,只是mapper.java中返回值类型方法不一样List。
    生成的动态代理对象中是根据mapper方法返回值类型确定调用selectOne还是selectList。

2)resultMap

mybatis中使用resultMap完成高级输出结果映射。

  • 如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。
    • 定义resultMap
09.输入输出映射_第6张图片
定义resultMap
  • 使用resultMap作为statement的输出映射类型
09.输入输出映射_第7张图片
  • mapper.java
mapper.java
  • test


    09.输入输出映射_第8张图片
    test.png

你可能感兴趣的:(09.输入输出映射)