<parameterMap> 元素:
<parameterMap> 元素用于定义参数映射,可以显式地为每个参数指定名称和类型。这个方式不太常用,因为MyBatis可以通过反射机制自动获取参数信息。
<parameterMap id="userParameterMap" type="com.example.model.User">
<parameter property="id" jdbcType="INTEGER"/>
<parameter property="username" jdbcType="VARCHAR"/>
<parameter property="password" jdbcType="VARCHAR"/>
</parameterMap>
<parameterType> 属性:
<parameterType> 属性用于指定映射器接口方法的参数类型。这是一种常见的方式,MyBatis会自动识别方法参数的类型。
<select id="getUserById" resultType="com.example.model.User" parameterType="java.lang.Long">
SELECT * FROM users WHERE id = #{id}
</select>
在这个例子中,parameterType 属性指定了 getUserById 方法的参数类型为 java.lang.Long。
<parameter> 元素:
<parameter> 元素可以用于显式地指定参数名称、类型以及其他属性。
<select id="getUserByUsername" resultType="com.example.model.User">
SELECT * FROM users WHERE username = #{param1, jdbcType=VARCHAR}
</select>
在这个例子中,getUserByUsername 方法接收一个名为 param1 的参数,显式地指定了 jdbcType 属性。
动态SQL参数:
在动态SQL语句中,可以使用 #{} 占位符引用方法参数。这是一种非常灵活的方式,允许根据不同的条件构建不同的SQL语句。
<select id="getUsers" resultType="com.example.model.User" parameterType="com.example.model.User">
SELECT * FROM users
<where>
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
</where>
</select>
在这个例子中,getUsers 方法接收一个 User 对象作为参数,通过 <if> 元素构建了一个动态的条件查询语句。
总体而言,MyBatis对参数的处理是相当灵活的,你可以选择适合你业务需求的参数配置方式。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7009/MyBatis