첫 번째 질문 : 하나의 OUT 매개 변수를 반환하고 주석이있는 결과 집합을 반환하려고합니다. 첫째, 가능한가? 그렇다면 어떻게해야할까요?OUT 매개 변수를 사용하여 Java MyBatis 저장 프로 시저 호출
의 MyBatis : 3.0.6
데이터베이스 : 내가로부터 메시지를 반환하고
@Select(value= "{ CALL saveUser("
+ "#{userId, mode=IN, jdbcType=INTEGER},"
+ "#{firstname, mode=IN, jdbcType=VARCHAR},"
+ "#{lastname, mode=IN, jdbcType=VARCHAR},"
+ "#{message, mode=OUT, jdbcType=VARCHAR}"
+ ")}")
@Options(statementType=StatementType.CALLABLE)
public String saveUser(
@Param("userId") int userId,
@Param("firstname") String firstname,
@Param("lastname") String lastname);
: 여기
2008은 UserDAO 내 메서드 호출의 구문 예는 SQL 서버 내 "저장"절차를 모두 수행 할 수 있으므로 사용자에게 "사용자 저장 성공", "사용자 저장 오류", "이 사용자를 저장할 수있는 권한이 없습니다"등의 응답을 반환 할 수 있습니다. 세트가 문제를 해결할 것입니다, 그저 저의 모든 절차를 바꾸고 싶지는 않습니다. !
두 번째 질문 : 여러 개의 OUT 매개 변수에서 채워진 "SaveProcedureResponse"를 반환 할 수 있습니까? 예를 들어 :
@Select(value= "{ CALL saveUser("
+ "#{userId, mode=IN, jdbcType=INTEGER},"
+ "#{firstname, mode=IN, jdbcType=VARCHAR},"
+ "#{lastname, mode=IN, jdbcType=VARCHAR},"
+ "#{message, mode=OUT, jdbcType=VARCHAR},"
+ "#{status, mode=OUT, jdbcType=VARCHAR},"
+ "#{returnCode, mode=OUT, jdbcType=INTEGER}"
+ ")}")
@Options(statementType=StatementType.CALLABLE)
public SaveProcedureResponse saveUser(
@Param("userId") int userId,
@Param("firstname") String firstname,
@Param("lastname") String lastname);
는 빈은 다음과 같다 여기서
public class SaveProcedureResponse {
private String message;
private String status;
private int returnCode;
public SaveProcedureResponse(String message, String status, int returnCode) {
this.message = message;
this.status = status;
this.returnCode = returnCode;
}
}
감사합니다!
감사합니다! 예, XML 매퍼로 어떻게 할 수 있는지 알고 있지만 순수 주석으로도 동일한 작업을 수행 할 수 있는지 궁금합니다. – snoozy
주석과 함께 작동해야합니다. 방금 일부 코드를 복사하고 이름을 변경 했으므로 주석 선택으로 바꾸고 싶지 않았습니다. – Andy