【MyBatis】3中方式传递多个参数

方式一:map (不推荐,无法直观查看参数名称)

// 接口
List<Student> queryStudentByMap(Map<String,Object> map);
<!-- XML映射 -->
<select id="queryStudentByMap" parameterType="map" resultType="com.sunleaf.entity.Student">
    select * from student where name like concat('%',#{name},'%')  and age > #{age}
</select>
// 测试
public void testQueryStudentByMap(){
    Map<String,Object> map = new HashMap<>();
    map.put("name", "test");
    map.put("age", 20);
    List<Student> students = mapper.queryStudentByMap(map);
    students.forEach(System.out::println);
}

方式二:@Param (不适合参数过多的情况)

// 接口
List<Student> queryStudentByMultiParam(@Param("name") String name, @Param("age") int age);
<!-- XML映射 -->
<select id="queryStudentByMultiParam" resultType="com.sunleaf.entity.Student">
    select * from student where name like concat('%',#{name},'%')  and age > #{age}
</select>
// 测试
public void testQueryStudentByMultiParam(){
    List<Student> students = mapper.queryStudentByMultiParam("test", 20);
    students.forEach(System.out::println);
}

方式三:JavaBean (适合参数过多的情况)

// 接口
List<Student> queryStudentByJavaBean(Student student);
<!-- XML映射 -->
<select id="queryStudentByJavaBean" parameterType="com.sunleaf.entity.Student" resultType="com.sunleaf.entity.Student">
    select * from student where name like concat('%',#{name},'%')  and age > #{age}
</select>
// 测试
public void testQueryStudentByJavaBean(){
    Student st = new Student();
    st.setName("test");
    st.setAge(20);
    List<Student> students = mapper.queryStudentByJavaBean(st);
    students.forEach(System.out::println);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值