MyBatis 的 parameterType 和 resultType分别是用来做什么的?

MyBatis 的parameterType和resultType分别是:

parameterType:
用于指定传入的参数类型:

  • 对象:基本类型、pojo、map等对象。
  • hashmap:将多个参数封装在 hashmap 中。
<insert id="insert" parameterType="pojo">
  insert into table (...) values (#{user.id},#{user.name})  

resultType:
用于指定结果集的返回类型:

  • pojo:返回一个POJO对象。
  • map:返回一个map,key是列名。
  • hashmap:将多行结果集封装为 hashmap。
  • 泛型:返回一个泛型列表。
<select id="selectUser" resultType="pojo">
   select * from user  where id = #{id}
</select>

另外,MyBatis 还提供了 resultMap 标签来映射复杂类型。

parameterType主要用于:

  • 指定传入参数类型
  • 简化参数形式:#{paramName}

resultType主要用于:

  • 指定返回结果集类型
  • 简化结果集映射

而resultMap可以解决复杂结果集的映射问题。

总的来说:

  • parameterType用于指定输入参数类型
  • resultType用于指定输出结果集类型

这两点可以有效简化SQL映射的复杂性。