首页 > 技术文章 > Mybatis传递参数到 xml

coder-Fish 2021-07-29 20:04 原文

 

1.用注解传递多个参数

mybatis在处理多个参数时,会将多个参数处理成param1,param2……等,但是这样太难看了,为了简便,我们可以使用@param注解

例如:updateUser函数
实体类

public class User {
   private String name;    
}

 

UserMapper.java

public interface UserMapper {
    public List<User> getUser();
    public boolean inserUser(String Name);
    public boolean updateUser(@Param("Name") String Name, @Param("Name1") String Name1);
    public boolean deleteUser(String Name);
}

 

在更新用户的方法中我们使用了两个参数,为了在xml文件中能找到着两个参数,使用param注解,这样我们在xml文件中就可以直接使用@Param()里面的值了。

UserMapper.xml

<update id="updateUser" parameterType="String">
    update xiao set name=(#{Name1}) where name = (#{Name})
</update>

 

 

2.传递实体类对象

如果我们在函数中传递的是实体类对象,那么我们在xml文件中直接引用对象的属性名就可以引用。

示例:insertUser函数

public interface UserMapper {
    public List<User> getUser();
    public boolean inserUser(User user);
}

 

在xml文件中可以直接用name这个属性的名字来传递这个属性的值第一个name是数据库中这个表的属性名字,第二个name是User这个实体类中的属性名字

UserMapper.xml
<insert id="insertUser" parameteType="string">
    insert into xiao(name) values (#{name})
<insert>

 

 

3.用map传递多个参数,EntrySet<参数名,参数值>

UserMapper.java

public interface UserMapper {
    public List<User> getUser();
    public boolean updateUser(Map<String,Object> map);
}

 

UserMapper.xml
<update id="updateUser" parameterType="String">
    update xiao set name = (#{Name1}) where name = (#{Name})
</update>

 

test.java
Map<String,Object> map = new HashMap<String,Object>();
map.put("Name","小哈");
map.put("Name1","小明");
mapper.updateUser(map);

 

推荐阅读