MyBatis参数传递的三种方式
-
传递的是基本类型+String ,使用 param1
-
传递类型是对象,接受使用对象的 属性名
-
传递的是map集合,接受时候使用map中的 key
<!-- 方法 User selectOne(int id)-->
<!--param1:-->
<select id="selectOne" resultType="user" parameterType="int">
select * from user where id = #{id}
</select>
<!-- 方法 User selectOne(UserQuery query)-->
<!--#{} 里面放的是对象属性-->
<select id="selectOne2" resultType="user">
select * from user where id = #{id} and name = #{name}
</select>
<!-- 方法 User selectOne(Map map)-->
<!--#{} 里面放的是map的key-->
<select id="selectOne3" resultType="user">
select * from user where id = #{a} and name = #{b}
</select>
// 【A】. 传递基本类型
User user = sqlSession.selectOne("test.c.selectOne", 2);
// 打印
System.out.println(user);
// 【B】. 传递对象
UserQuery query = new UserQuery();
query.setId(2);
query.setName("李四");
User user = sqlSession.selectOne("test.c.selectOne2", query);
//打印
System.out.println(user);
//【C】. 传递Map集合
//id,name 一块封装到map集合
Map<String,Object> map = new HashMap<>();
map.put("a",2);
map.put("b","李四");
User user = sqlSession.selectOne("test.c.selectOne3", map);
//打印
System.out.println(user);