MyBatis 内置了几个非常有用的参数对象:
_parameter:代表整个参数对象
可以直接使用:
select * from user where id = #{_parameter}
然后传入 User 对象:
userMapper.selectById(user);
MyBatis 会通过反射获取 user 中的 id 属性。
#{parameter}:代表参数的属性
可以指定参数的属性名:
select * from user where id = #{id}
传入参数:
userMapper.selectById(user);
会获取user.id属性。
$_parameter:代表参数中的Map或Object对象的值
如果参数是一个 Map:
Map<String, Object> map = new HashMap<>();
map.put("id", 1);
则在SQL中可以这样用:
select * from user where id = ${id}
传入 map 就可以了。
通过名称取出 map 中的值。
* :代表所有参数
select * from user where ${age} > #{age}
这里通过 * 获取所有参数,然后取 age 属性。
MyBatis 内置参数对象可以很方便的取出参数中的属性值,简化了SQL映射。
主要特点是:
- _parameter 代表整个参数对象
- #{parameter} 代表参数属性
- $parameter$ 代表 map 中的值
- * 代表所有参数
内置参数对象大大方便了参数的传递。