在mybatis的学习中,会发现经常需要传参,这里以上一节写的实体类为基础,当我们要添加一个员工时,需要添加员工的基本信息,以及所属部门,按照以前的方法,在实体类中,添加部门id属性,然后通过有参构造的方法传递对象,读取对象的部门id就可以了,但是现在使用mybatis时,因为是一对多的关系,因此实体类中设置的属性是Dept属性的,没有did,因此没有办法通过有参构造的方法来传递参数,这时就要想办法将部门的id传递过去。因此需要给之前的实体类的有参构造进行修改,
这样就员工的对象就可以使用有参构造来创建对象,那么添加员工的信息的dao层以及mapper文件如下:
这是就会出现问题,因为之前根据id搜索信息以及修改数据添加数据等方法都是只有一个参数的,因此在mapper中可以解析数据,但是当传递两个参数时就不能解析数据了,会报错
因此当dao层传递两个或两个以上时,需要使用注解来传参。具体如下:
在这里要说明,在mapper文件中使用#{}传递参数,当传递多个参数时, dao层@param()内的值就是在mapper文件中#{}变量的名字,通过@param()注解来传递参数。当只传递一个参数时,可以不使用注解,但是当两个或以上参数时,必须使用注解。
原文:https://www.cnblogs.com/Zs-book1/p/10989785.html