一般我们在传入参数时都会借助到pojo类。但mybatis也提供了直接传入多个参数的方法。
此时在mapper.xml文件中的SQL语句不用再写parameterType属性,而是用arg0,arg1,arg2,arg3…或者param1,param2,param3…代替。
mapper.xml
<insert id="addStudent">
insert into student values(#{param1},#{param2},#{param3})
<!-- insert into student values(#{arg0},#{arg1},#{arg2}) -->
</insert>
接口文件:
boolean addStudent(String sid,String sname,int classid);
测试类:
Reader reader = Resources.getResourceAsReader("conf.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession(true); //自动提交事务
StudentMapper studentMapper = session.getMapper(StudentMapper.class);
boolean result = studentMapper.addStudent("8003118004", "赵六",3);
System.out.println(result);
也可以给参数命名
但是需要注意的是,需要在接口对应的方法中给对应参数添加注释,不然无法识别。
mapper.xml
<insert id="addStudent">
insert into student values(#{sid},#{sname},#{classid})
</insert>
接口方法:
boolean addStudent(@Param("sid") String sid,@Param("sname") String sname,@Param("classid") int classid);
测试类:
Reader reader = Resources.getResourceAsReader("conf.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = sessionFactory.openSession(true); //自动提交事务
StudentMapper studentMapper = session.getMapper(StudentMapper.class);
boolean result = studentMapper.addStudent("8003118005", "王七",2);
System.out.println(result);