在MyBatis中,要想通过调用存储过程返回一个List集合,你需要在Mapper接口中定义一个方法,并使用@Param注解来传递存储过程的参数。同时,你需要在Mapper XML文件中配置相应的<select>标签,并指定statementType="CALLABLE"来表明这是一个调用存储过程的语句。
以下是一个简单的例子:
假设你有一个存储过程get_users,它从数据库中返回用户列表。
在你的Mapper接口中定义方法:
public interface UserMapper {
@Select({"<script>",
"CALL get_users(#{userId, mode=IN, jdbcType=INTEGER})",
"</script>"})
@Options(statementType = StatementType.CALLABLE)
List<User> getUsers(@Param("userId") Integer userId);
}
在Mapper XML文件中配置:
<mapper namespace="com.example.mapper.UserMapper">
<select id="getUsers" statementType="CALLABLE" resultType="com.example.domain.User">
CALL get_users(#{userId, mode=IN, jdbcType=INTEGER})
</select>
</mapper>
在这个例子中,get_users存储过程接受一个用户ID作为输入参数,并返回一个用户列表。你可以通过调用getUsers方法来获取这个列表。注意,存储过程的名称和参数需要根据实际情况进行替换。