mybatis接口传入多个入参问题

实际项目开发时,经常会遇到mybatis的接口需要多个入参的情况,但是由于可能参数只有两三个,不愿意把这些参数封装成一个对象,这时就面临着参数直接传入的情景。这时如果按照下面写法,会报错误:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'projectId' not found. Available parameters are [0, 1, param1, param2]

解决方案:

(1)给dao接口的入参添加注解

单个参数,如果构建动态SQL有<if>标签判断,也需要在dao接口入参上加上注解:@Param,不然会报没有set

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'parameter' in 'class java.lang.String'

(2)对应的的xml文件的sql语句中,采用参数序号来表示,0代表第一个参数,1代表第二个参数,,,,(以此类推)

(3)dao接口的入参更改为map

猜你喜欢

转载自blog.csdn.net/zhenwei1994/article/details/81543143