【MyBatis】mybatis中parameterType、javaType、type和ofType

在MyBatis中,parameterTypejavaTypetypeofType这四个属性都与参数类型或结果类型相关。

  • parameterType:用于指定SQL语句中的参数类型。它可以是Java类的全限定名、别名或简单的类型。通过parameterType可以告诉MyBatis将参数值转换为何种类型。

  • javaType:用于指定结果集中某列的Java类型。它可以是Java类的全限定名、别名或简单的类型。通过javaType可以告诉MyBatis将查询结果中的某一列映射为何种Java类型。

  • type:用于指定SQL语句的返回结果类型。它可以是Java类的全限定名、别名或简单的类型。通过type可以告诉MyBatis将查询结果转换为何种类型。

  • ofType:用于告诉MyBatis将查询结果转换为特定类型的集合。通常与resultTyperesultMap配合使用。当查询结果是一个集合时,可以通过ofType指定集合中元素的类型。

需要注意的是,parameterTypejavaType主要用于参数类型和结果集某列的类型指定,而typeofType主要用于整个结果集或集合元素的类型指定。它们可以根据具体情况灵活地使用,以便完成正确的类型映射和转换。

当使用MyBatis时,以下是针对parameterTypejavaTypetypeofType的一些示例说明:

  • parameterType 示例:
<select id="getUserById" resultType="com.example.User" parameterType="java.lang.Integer">
  SELECT * FROM users WHERE id = #{id}
</select>

在这个例子中,parameterType被设置为java.lang.Integer,表示id参数的类型是整数。

  • javaType 示例:
<resultMap id="userResultMap" type="com.example.User">
  <result column="name" property="name" javaType="java.lang.String"/>
  <result column="age" property="age" javaType="java.lang.Integer"/>
</resultMap>

在这个例子中,javaType被分别设置为java.lang.Stringjava.lang.Integer,表示结果集中的name列对应的Java类型是String,age列对应的Java类型是Integer。

  • ofType 示例:
<select id="getAllUsers" resultType="java.util.List" ofType="com.example.User">
  SELECT * FROM users
</select>

在这个例子中,resultType被设置为java.util.List,表示查询结果将被转换为List类型,而ofType被设置为com.example.User,表示List中的元素是User类型。

  • Type 示例:
<resultMap id="userResultMap" type="com.example.User">
  <result column="name" property="name" javaType="java.lang.String"/>
  <result column="age" property="age" javaType="java.lang.Integer"/>
</resultMap>

<select id="getUserById" resultMap="userResultMap">
  SELECT id, name, age FROM users WHERE id = #{id}
</select>

在上面的例子中,type被设置为com.example.User,表示整个查询结果将映射为User类型的对象。resultMap中的各个result标签定义了如何将查询结果中的列映射到User对象的属性上。

这些示例展示了在MyBatis中如何使用parameterTypejavaTypetypeofType属性来指定参数类型和结果类型。根据具体的需求,可以根据这些示例进行相应的配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值