在MyBatis中,可以通过parameterType属性来传递复杂参数。parameterType属性用于指定传递给SQL语句的参数类型,可以是Java对象、Map或者自定义的复杂参数对象。
例如,如果要传递一个包含多个参数的复杂对象,可以定义一个Java Bean类来表示这个复杂参数对象,然后在Mapper接口中指定parameterType为这个Java Bean类,如下所示:
public class ComplexParam {
private String param1;
private int param2;
// getters and setters
}
public interface MyMapper {
void myMethod(ComplexParam complexParam);
}
在Mapper XML文件中,可以通过parameterType属性来指定传递的参数类型,如下所示:
<mapper namespace="com.example.MyMapper">
<select id="myMethod" parameterType="com.example.ComplexParam" resultType="java.lang.String">
SELECT * FROM my_table WHERE column1 = #{param1} AND column2 = #{param2}
</select>
</mapper>
在调用myMethod方法时,只需要传入一个ComplexParam对象作为参数即可:
ComplexParam complexParam = new ComplexParam();
complexParam.setParam1("value1");
complexParam.setParam2(123);
myMapper.myMethod(complexParam);
这样就可以通过parameterType属性传递复杂参数了。需要注意的是,传递的参数类型必须与Mapper接口中定义的参数类型一致,否则可能会导致参数传递失败。