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);