mybatis #{maxId}
时间: 2024-10-19 11:08:04 浏览: 11
在 MyBatis 中,`${}` 和 `#{}` 是两种不同的占位符,它们用于在 SQL 查询中引用参数。`#{}` 是特殊的语法,表示这是一个预处理语句,会将参数的安全地绑定到 SQL 语句中,防止 SQL 注入攻击。当使用 `${}` 时,它代表的是字符串字面量,不会参与预处理。
当你看到 `#{maxId}` 这样的表达式,这是 MyBatis 用来从 Java 对象属性中获取值,并将其插入到 SQL 查询中的。例如,如果你有一个 `User` 对象,其中有一个名为 `maxId` 的字段,你在插入用户信息的时候可能会有这样的 SQL:
```xml
<insert id="insertUser" parameterType="com.example.User">
INSERT INTO user (id, max_id)
VALUES (#{id}, #{maxId})
</insert>
```
在 Java 代码中,传递给这个方法的 `User` 实例将会把 `maxId` 属性的值替换到 SQL 语句的 `#{maxId}` 位置上:
```java
User user = new User();
user.setMaxId(100); // 设置 maxId 的值
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
int result = mapper.insertUser(user);
```
这样,MyBatis 会在执行 SQL 时自动将 `user.getMaxId()` 的返回值作为参数传递进去。
阅读全文