不写 parameterType 的情况:
<!-- 可以不写 parameterType -->
<update id="updateUser">
UPDATE users
SET name = #{name}, email = #{email}
WHERE id = #{id}
</update>
自动推断规则:
- 单个基本类型:
int,String,Long等 - POJO 对象:自动匹配属性
- Map 类型:直接使用 key
- 多个参数:使用
@Param注解或param1,param2
注意多参数的情况:
多参数传递场景下的问题:
方式一:使用 @Param 注解(推荐)
java
void insertUser(
@Param(“name”) String name,
@Param(“age”) int age,
@Param(“email”) String email
);
<insert id="insertUser">
INSERT INTO users (name, age, email)
VALUES (#{name}, #{age}, #{email})
</insert>
方式二:使用 param1, param2, …(不推荐)
java
void insertUser(String name, int age); // 没有 @Param 注解
<insert id="insertUser">
INSERT INTO users (name, age)
VALUES (#{param1}, #{param2}) <!-- 按参数位置引用 -->
</insert>
方式三:使用 map 作为参数
java
void insertUser(Map<String, Object> params);
<insert id="insertUser" parameterType="map">
INSERT INTO users (name, age)
VALUES (#{name}, #{age})
</insert>
951

被折叠的 条评论
为什么被折叠?



