mybatis传入参数的方式
方式一 通过java bean传参
<update id="updateEmpByNo" parameterType="employee">
update emp set ename=#{ename} where empno=#{empno}
</update>
测试
@Test
public void updateTest() throws IOException {
//顺序传参
SqlSession session = MBUtils.getSession();
EmpMapper empMapper = session.getMapper(EmpMapper.class);
Emp emp = new Emp();
emp.setEname("admin");
emp.setEmpno(8888);
empMapper.updateEmpByNo(emp);
session.commit();
}
方式二 顺序传参
有两种 arg0 arg1和param1 param2
<!--此时因为有多个参数 所以参数类型不能逐一制定 可以省略 有mybatis自动匹配-->
<update id="updateEmpByNo2">
update emp set ename=#{param1} where empno=#{param2}
</update>
<!--此时因为有多个参数 所以参数类型不能逐一制定 可以省略 有mybatis自动匹配-->
<update id="updateEmpByNo2">
update emp set ename=#{arg0} where empno=#{arg1}
</update>
测试
@Test
public void update2Test(){
//顺序传参
SqlSession session = MBUtils.getSession();
EmpMapper empMapper = session.getMapper(EmpMapper.class);
empMapper.updateEmpByNo2("admin",8888);
session.commit();
}
方式三 @Param注解传参
mapper.java
public void updateEmpByNo2(@Param("name") String ename,@Param("no") Integer empno) throws IOException;
mapper.xml
<update id="updateEmpByNo2">
update emp set ename=#{name} where empno=#{no}
</update>
测试
@Test
public void update3Test(){
//注解传参
SqlSession session = MBUtils.getSession();
EmpMapper empMapper = session.getMapper(EmpMapper.class);
empMapper.updateEmpByNo3("admin",8888);
session.commit();
}
方式四 map传参
mapper.java
public void updateEmpByNo3(Map<String,Object> argMap) throws IOException;
mapper.xml
<update id="updateEmpByNo3" parameterType="hashmap">
update emp set ename=#{name} where empno=#{no}
</update>
测试
@Test
public void update4Test(){
//map传参
SqlSession session = MBUtils.getSession();
EmpMapper empMapper = session.getMapper(EmpMapper.class);
Map<String,Object> map = new HashMap();
map.put("ename","ename");
map.put("no",8888);
empMapper.updateEmpByNo4(map);
session.commit();
}