mybatis传递多个参数
时间: 2023-05-03 09:07:52 浏览: 180
Mybatis中传递多个参数的4种方法总结
MyBatis是一个优秀的Java持久化框架,它可以轻松地将数据库表和Java对象之间进行映射。在开发过程中,我们通常需要向MyBatis的SQL语句中传递多个参数。下面我们来介绍MyBatis传递多个参数的方法。
1. 使用Map传递参数。
通过使用Map来传递多个参数,可以将多个参数打包到一个Map对象中。在MyBatis的Mapper.xml文件中,使用#{key}来引用Map中的参数值。例如,如果我们要传递两个参数,一个是username,一个是age,可以使用如下的方式:
```
<select id="getUser" parameterType="map" resultType="User">
SELECT * FROM user WHERE username = #{username} AND age = #{age}
</select>
```
在Java中使用Map传递参数的例子如下:
```
Map<String, Object> parameterMap = new HashMap<>();
parameterMap.put("username", "张三");
parameterMap.put("age", 18);
User user = sqlSession.selectOne("getUser", parameterMap);
```
2. 使用@Param注解传递参数。
@Param注解可以用来指定参数的名称,从而在Mapper.xml文件中和Java中使用相同的参数。在Mapper.xml文件中,使用#{参数名}来引用参数值。例如,如果我们要传递两个参数,一个是username,一个是age,可以使用如下的方式:
```
<select id="getUser" parameterType="map" resultType="User">
SELECT * FROM user WHERE username = #{username} AND age = #{age}
</select>
```
在Java中使用@Param注解传递参数的例子如下:
```
public User getUser(@Param("username") String username, @Param("age") int age);
```
3. 使用JavaBean传递参数。
在Java中,我们可以使用JavaBean来封装多个参数,然后在Mapper.xml文件中使用#{属性名}来引用JavaBean属性的值。例如,如果我们要传递两个参数,一个是username,一个是age,可以使用如下的JavaBean:
```
public class UserInfo {
private String username;
private int age;
// getter/setter
}
```
在Mapper.xml文件中,可以如下使用JavaBean传递参数:
```
<select id="getUser" parameterType="UserInfo" resultType="User">
SELECT * FROM user WHERE username = #{username} AND age = #{age}
</select>
```
在Java中使用JavaBean传递参数的例子如下:
```
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setAge(18);
User user = sqlSession.selectOne("getUser", userInfo);
```
总之,MyBatis传递多个参数的方法有很多,主要是使用Map、@Param注解和JavaBean来封装参数。在使用的时候,我们需要根据具体情况,选择最适合的方法来传递参数。
阅读全文