mapper中参数为param mapper.xml需要写parameterType吗
时间: 2023-12-29 14:06:07 浏览: 70
在 MyBatis 中,如果你在 Mapper 接口的方法中使用了参数,则需要在对应的 Mapper.xml 文件中指定该参数的类型(parameterType),以便 MyBatis 可以正确地将参数传递给 SQL 语句。
如果你的 Mapper 接口方法只有一个参数,则可以直接在 Mapper.xml 文件中指定该参数的类型,例如:
```xml
<!-- Mapper.xml -->
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
```
如果你的 Mapper 接口方法有多个参数,则需要将这些参数封装到一个 POJO 对象中,并在 Mapper.xml 文件中指定该 POJO 对象的类型,例如:
```java
public class UserQuery {
private int id;
private String name;
// getter 和 setter
}
```
```xml
<!-- Mapper.xml -->
<select id="getUserByNameAndId" parameterType="UserQuery" resultType="User">
SELECT * FROM user WHERE id = #{id} AND name = #{name}
</select>
```
需要注意的是,如果你使用的是注解方式配置 Mapper,则可以不用指定 parameterType,因为 MyBatis 可以通过反射得到参数的类型。例如:
```java
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(int id);
```
在这种情况下,MyBatis 会自动将参数类型设置为 int。
阅读全文