mapper.xml 中参数替换使用 java
时间: 2024-10-13 08:16:13 浏览: 41
在MyBatis中,mapper.xml文件通常用于描述数据库操作的SQL映射,而参数替换主要是通过`<#{}` 或 `${}` 这两种占位符语法完成的。
1. `<#{}>` (EL表达式):这是Spring Expression Language (EL) 的占位符,在运行时会被MyBatis解析为Java表达式,可以访问Spring Bean、环境变量、甚至直接传递Java对象。例如:
```xml
select * from users where id = #{id}
```
如果id是从Java对象传入的,如User user = new User(); user.setId(1);,那么实际执行的SQL将是 `select * from users where id = 1`。
2. `${}` (预编译模板):这种占位符不会执行Java表达式,它会原样将参数值插入到SQL字符串中。如果id是一个简单的数值,可以直接写`${id}`,不需要额外的包装。例如:
```xml
select * from users where id = ${id}
```
为了在Java代码中动态设置这些参数,你需要创建一个`Map`或者其他类型的参数载体,并使用`SqlSession`的`selectList()`或`selectOne()`方法,配合`setXXX()`方法来设置参数。例如:
```java
Map<String, Object> params = new HashMap<>();
params.put("id", userId);
List<User> users = sqlSession.selectList("selectUsers", params);
```
阅读全文