如何使用 mybatis mappers(无类型处理程序)从存储过程中获取数据库嵌套集合。 例如:存储过程返回以下类型的DB表对象:
TYPE class_list IS TABLE OF class ;
,其中
TYPE class AS OBJECT (students student_list, class_teacher teacher);
TYPE student_list IS TABLE OF student;
TYPE student AS OBJECT (name VARCHAR2, age NUMBER, marks NUMBER);
TYPE teacher AS OBJECT (name VARCHAR2, qualification VARCHAR2, phone_number NUMBER);
答案 0 :(得分:0)
@blackwizard,你是对的。对于自定义数据库类型,必须使用自定义类型处理程序。以下是告诉mybatis它正在处理自定义对象的语法(jdbcTypeName
):
{call YOUR_PACKAGE.YOUR_PROCEDURE(
#{your_input_parameter, jdbcType=VARCHAR mode=IN javaType=java.lang.String mode=IN },
#{your_output_parameter, jdbcType=ARRAY mode=OUT jdbcTypeName=class_list typeHandler=custom_typeHandler})}
注意:已弃用的parameterMap
不支持此功能。