针对 MyBatis Mapper 接收参数的四种方式,我这里会进行详细的讲解,包括示例代码和解析。
第一种:基于注解的传参数
示例代码:
@Select("select * from user where name=#{name} and age=#{age}")
public List<User> selectUserByNameAndAge(@Param("name") String name, @Param("age") int age);
解析:
使用注解的方式将 SQL 语句直接写在了接口的方法上,#{name}
和 #{age}
是 MyBatis 的占位符,代表参数值。@Param("name")
和 @Param("age")
将方法的参数映射到 SQL 中的占位符上。
第二种:基于 Map 的传参数
示例代码:
@Select("select * from user where name=#{name} and age=#{age}")
public List<User> selectUserByNameAndAge(Map<String,Object> params);
解析:
使用 Map 对象传递参数,其中 params
中的 key 将会与注解中的参数名对应,name
对应为 "name"
,age
对应为 "age"
。
第三种:基于对象的传参数
示例代码:
@Select("select * from user where name=#{name} and age=#{age}")
public List<User> selectUserByNameAndAge(User user);
解析:
使用对象传递参数,将 User
对象作为参数传递进去,其中 #{name}
和 #{age}
对应于 User 类中的属性名和值。
第四种:基于数组和 JavaBean 的传参数
示例代码:
<insert id="batchInsertUsers" parameterType="java.util.List">
insert into users(id,name,age) values
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age})
</foreach>
</insert>
解析:
使用数组和 JavaBean 传递参数,其中 parameterType="java.util.List"
表示该 SQL 语句接受的参数类型为 List。在 SQL 代码中使用 foreach
标签对 List 中的每个元素进行遍历,#{item.id}
, #{item.name}
, #{item.age}
分别对应于 User 类中的 id、name、age 属性。
通过上述四种方式,可以灵活地传递参数并应对各种具体业务场景的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis Mapper接受参数的四种方式代码解析 - Python技术站