MyBatis Plus的内置参数对象主要有以下用途:
在SQL语句中简化参数使用:
1. #{column}
代表具体的参数属性:
List<User> list = mapper.selectList(null,
Wrapper.<User>lambda().eq(User::getName, "#{name}"));
使用#{name},取出参数name属性值。
2. ${column}
代表参数中Map的值:
List<User> list = mapper.selectList(new HashMap<String, Object>(){{
put("name", "John");
}}, null);
在SQL中使用${name},取出map中的name值。
3. *
代表参数对象本身:
<select id="selectById" resultType="user">
select * from user where id = ${id}
</select>
传入:
User user = new User();
user.setId(1);
List<User> list = mapper.selectById(user);
会通过 * 取出user.id的值。
4. _.column
代表Getter方法:
<select id="selectById" resultType="user">
select * from user where id = _.id
</select>
等同于:
select * from user where id = #{id}
这几个内置参数对象可以大大简化 MyBatis Plus的 SQL 编写:
- #{column}:代表参数属性
- ${column}:代表Map值
- *:代表参数对象
- _.column:代表Getter方法
通过使用内置参数对象,提高了SQL的易读性和可维护性。