Notice
Recent Posts
Recent Comments
Link
투케이2K
49. (spring/스프링) mybatis 에서 mysql 프로시저 호출 및 리턴 OUT 메시지 , SELECT 테이블 결과 JSON 형식으로 반환 실시 본문
Spring
49. (spring/스프링) mybatis 에서 mysql 프로시저 호출 및 리턴 OUT 메시지 , SELECT 테이블 결과 JSON 형식으로 반환 실시
투케이2K 2022. 6. 17. 15:21[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[컨트롤러 : DB_Maria_Api_Controller : 소스 코드]
// TODO [SEARCH FAST] : [테스트 사용자 정보 요청]
@GetMapping("/testUser")
public String testUser(@RequestParam Map<String, String> param){ // [쿼리 파람 방식]
//public String testUser(@RequestBody Map<String, String> param){ // [body 방식]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testUser"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/testUser
* // -----------------------------------------
* 3. 리턴 데이터 :
* {"O_MSG":"Y : SUCCESS : M_DEGUB : [2]","O_CUR":[{"T_NAME":"의자왕","T_DEPT":"백제","T_PHONE":"010-1234-5684"}]}
* // -----------------------------------------
* */
// [초기 리턴 데이터 선언 실시]
JSONObject returnData = new JSONObject();
// [로직 처리 수행 실시]
try {
// [service 호출 수행]
List<List<Map<String, Object>>> serviceData = db_maria_api_service.PRO_SEL_TEST_USER("백제");
// [리턴 데이터 삽입 실시]
returnData = C_Util.mySqlMsgCursorJsonFormat(serviceData, S_FinalData.NAME_O_MSG, S_FinalData.NAME_O_CUR);
}
catch (Exception e){
e.printStackTrace();
// [리턴 데이터 삽입 실시]
try {
returnData.put(String.valueOf(S_FinalData.NAME_O_MSG), S_FinalData.RETURN_N_EXCEPTION + " : " + String.valueOf(e.getMessage()));
returnData.put(String.valueOf(S_FinalData.NAME_O_CUR), "");
}
catch (Exception error){
error.printStackTrace();
}
}
// [로그 출력 실시]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testUser"));
System.out.println("[RESULT] : "+String.valueOf(returnData.toString()));
System.out.println("================================================");
System.out.println("\n");
// [리턴 데이터 반환]
return returnData.toString();
}
[서비스 : DB_Maria_Api_Service : 소스 코드]
// TODO [SEARCH FAST] : [테스트 사용자 정보 요청]
public List<List<Map<String, Object>>> PRO_SEL_TEST_USER(String dept){
// [mybatis xml 에서 설정한 인풋값 명칭에 맞게 데이터 가공 실시]
Map map = new HashMap<>();
map.put("I_DEPT_NAME", String.valueOf(dept));
// [map 인풋값 확인 실시]
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("PRO_SEL_TEST_USER"));
System.out.println("[INPUT] : "+String.valueOf(map.toString()));
System.out.println("================================================");
System.out.println("\n");
// [mapper 인터페이스 호출 실시]
List<List<Map<String, Object>>> returnData = db_maria_api_mapper.PRO_SEL_TEST_USER(map);
// [프로시저 수행 후 리턴 값 반환]
return returnData;
}
[매퍼 : DB_Maria_Api_Mapper : 소스 코드]
// TODO [SEARCH FAST] : [테스트 사용자 정보 요청]
List<List<Map<String, Object>>> PRO_SEL_TEST_USER(Map map); // [프로시저]
[mybatis : DB_Maria_Api_Mybatis : 소스 코드]
<!--
// =========================================
// [SEARCH FAST] : [테스트 사용자 정보 요청]
// =========================================
// [select id] [mapper 인터페이스 지정 메소드] : PRO_SEL_TEST_USER
// =========================================
// [resultMap] : 프로시저 수행 후 리턴 메시지 및 커서 테이블이 담길 맵
// =========================================
-->
<resultMap id="PRO_SEL_TEST_USER_RESULT_O_MSG" type="hashmap" />
<resultMap id="PRO_SEL_TEST_USER_RESULT_O_CURSOR" type="hashmap" />
<select id="PRO_SEL_TEST_USER" parameterType="hashmap" resultMap="PRO_SEL_TEST_USER_RESULT_O_MSG, PRO_SEL_TEST_USER_RESULT_O_CURSOR" statementType="CALLABLE">
<![CDATA[
{ call PRO_SEL_TEST_USER(
#{I_DEPT_NAME, mode=IN, jdbcType=VARCHAR, javaType=string},
#{O_MSG}
)}
]]>
</select>
[DB Connection : application.yml : 소스 코드]
# [Maria DB]
maria:
driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mariadb://3.54.138.43:3306/test?characterEncoding=UTF-8&serverTimezone=UTC&characterEncoding=utf8&noAccessToProcedureBodies=true
username: test
password: test@1234
hikari:
maximum-pool-size: 20
connection-timeout: 30000
[결과 출력]
반응형
'Spring' 카테고리의 다른 글
Comments