Notice
Recent Posts
Recent Comments
Link
투케이2K
36. (spring/스프링) Oracle (오라클) , Maria (마리아) 데이터 베이스 접속 다중 설정 - gradle , mybatis , application yml 본문
Spring
36. (spring/스프링) Oracle (오라클) , Maria (마리아) 데이터 베이스 접속 다중 설정 - gradle , mybatis , application yml
투케이2K 2022. 6. 4. 08:00[개발 환경 설정]
개발 툴 : inteli j
개발 언어 : spring
[전체 폴더 구조]
[다중 데이터 베이스 연결 설정]
[DB_Maria_Api_Controller]
package com.test.mobile_univ.A_Controller.DB_Maria_Controller;
import com.test.mobile_univ.B_Service.DB_Maria_Service.DB_Maria_Api_Service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
// TODO [크로스 도메인 접속 허용 설정]
@CrossOrigin("*")
// TODO [RestController / Api 처리]
@RestController
public class DB_Maria_Api_Controller {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 컨트롤러 클래스
* // -----------------------------------------
* 2. 사용자가 api 호출을 통해서 접근 수행
* // -----------------------------------------
* 3. service 클래스 호출 및 로직 연결 실시
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 DB 호출]
* // -----------------------------------------
* */
// TODO [Autowire 설정]
@Autowired
private DB_Maria_Api_Service db_maria_api_service;
// TODO [전역 변수 선언 실시]
private static final String CLASS_NAME = "DB_Maria_Api_Controller";
// TODO [SEARCH FAST] : [테스트 DB 호출]
@GetMapping("/testDate")
public String testDate(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testDate"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/testDate
* // -----------------------------------------
* 3. 리턴 데이터 : 20220512 (마리아 DB 조회 현재 날짜)
* // -----------------------------------------
* */
// [service 호출 수행]
String time = db_maria_api_service.MA_TIME();
// [Api 리턴 메시지 반환]
return time;
}
} // TODO [클래스 종료]
[DB_Oracle_Api_Controller]
package com.test.mobile_univ.A_Controller.DB_Oracle_Controller;
import com.test.mobile_univ.B_Service.DB_Oracle_Service.DB_Oracle_Api_Service;
import com.test.mobile_univ.model.Time_Json_Model;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.configurationprocessor.json.JSONObject;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
// TODO [크로스 도메인 접속 허용 설정]
@CrossOrigin("*")
// TODO [RestController / Api 처리]
@RestController
public class DB_Oracle_Api_Controller {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 컨트롤러 클래스
* // -----------------------------------------
* 2. 사용자가 api 호출을 통해서 접근 수행
* // -----------------------------------------
* 3. service 클래스 호출 및 로직 연결 실시
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 API 호출]
* // [SEARCH FAST] : [테스트 DB 호출]
* // [SEARCH FAST] : [테스트 MODEL 리턴]
*
* // [SEARCH FAST] : [로그인 사용자 인증 요청]
* // -----------------------------------------
* */
// TODO [Autowire 설정]
@Autowired
private DB_Oracle_Api_Service db_oracle_api_service;
// TODO [전역 변수 선언 실시]
private static final String CLASS_NAME = "DB_Oracle_Api_Controller";
// TODO [SEARCH FAST] : [테스트 API 호출]
@GetMapping("/testApi")
public String testApi(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testApi"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/testApi
* // -----------------------------------------
* 3. 리턴 데이터 : Y : testApi
* // -----------------------------------------
* */
// [Api 리턴 메시지 반환]
return "Y : testApi";
}
// TODO [SEARCH FAST] : [테스트 DB 호출]
@GetMapping("/testDB")
public String testDB(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testDB"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/testDB
* // -----------------------------------------
* 3. 리턴 데이터 : 2022-05-12 (오라클 DB 조회 현재 날짜)
* // -----------------------------------------
* */
// [service 호출 수행]
String time = db_oracle_api_service.DB_TIME();
// [Api 리턴 메시지 반환]
return time;
}
// TODO [SEARCH FAST] : [테스트 MODEL 리턴]
@GetMapping("/testModel")
public Time_Json_Model testModel(@RequestParam Map<String, String> param){
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("testModel"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : GET
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/testModel
* // -----------------------------------------
* 3. 리턴 데이터 : {"state":"T","time":"2022-05-12"}
* // -----------------------------------------
* */
// [service 호출 수행]
String time = db_oracle_api_service.DB_TIME();
// [model 형식 리턴 데이터 반환]
return new Time_Json_Model("T", time);
}
// TODO [SEARCH FAST] : [로그인 사용자 인증 요청]
@PostMapping("/login_access")
public String login_access(@RequestParam Map<String, String> param){ // [쿼리 파람 방식]
//public String login_access(@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("login_access"));
System.out.println("[INPUT] : "+String.valueOf(param.toString()));
System.out.println("================================================");
System.out.println("\n");
/**
* // -----------------------------------------
* [호출 방법]
* // -----------------------------------------
* 1. 호출 방식 : POST [쿼리 파람]
* // -----------------------------------------
* 2. 호출 방법 : http://localhost:7000/login_access?id=twok&pw=tk1234
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* {"I_ID":"twok","O_CURSOR":[{"권한":"1","노트":"모든 기능 사용","아이디":"twok","비밀번호":"twok@kr","일자":"20200512153945","학교":"DEV"}],"O_MSG":"Y : 정상 로그인 성공 [M_DEBUG : 3-1-1]","I_PW":"twok@kr"}
*
* {"I_ID":"twok123","O_CURSOR":[null],"O_MSG":"N : 등록된 사용자가 아닙니다. 관리자에게 연락바랍니다. [M_DEBUG : 3-1-2]","I_PW":"tk@1234"}
*
* // -----------------------------------------
* */
// [인풋 데이터를 받을 변수 선언 실시]
String id = "";
String pw = "";
// [정상적으로 인풋 데이터가 포함되었는지 확인]
try {
JSONObject inputJson = new JSONObject(param);
if (inputJson.has("id") == true){ // [특정 key 값을 포함하는 경우]
id = String.valueOf(inputJson.get("id"));
}
if (inputJson.has("pw") == true){ // [특정 key 값을 포함하는 경우]
pw = String.valueOf(inputJson.get("pw"));
}
}
catch (Exception e){
e.printStackTrace();
}
// [service 호출 수행]
Map map = db_oracle_api_service.PRO_UMCS_MANAGER(id, pw);
// [리턴 받은 map 데이터 널 체크 실시]
try {
if (map != null){
JSONObject resultJson = new JSONObject(map);
System.out.println("\n");
System.out.println("================================================");
System.out.println("[CLASS] : "+String.valueOf(CLASS_NAME));
System.out.println("[METHOD] : "+String.valueOf("login_access"));
System.out.println("[RESULT] : "+String.valueOf(resultJson));
System.out.println("================================================");
System.out.println("\n");
}
}
catch (Exception e){
e.printStackTrace();
}
// [리턴 데이터 반환]
return "";
}
} // TODO [클래스 종료]
[DB_Maria_Api_Service]
package com.test.mobile_univ.B_Service.DB_Maria_Service;
import com.test.mobile_univ.C_Mapper.DB_Mapper_Maria.DB_Maria_Api_Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
// TODO [서비스 어노테이션]
@Service
public class DB_Maria_Api_Service {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 서비스 클래스
* // -----------------------------------------
* 2. mapper 인터페이스 메소드 호출 수행 실시
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 DB 호출]
* // -----------------------------------------
* */
// TODO [Autowire 설정]
@Autowired
private DB_Maria_Api_Mapper db_maria_api_mapper;
// TODO [SEARCH FAST] : [테스트 DB 호출]
public String MA_TIME(){
// [mapper 인터페이스 호출 실시]
return db_maria_api_mapper.MA_TIME();
}
} // TODO [클래스 종료]
[DB_Oracle_Api_Service]
package com.test.mobile_univ.B_Service.DB_Oracle_Service;
import com.test.mobile_univ.C_Mapper.DB_Mapper_Oracle.DB_Oracle_Api_Mapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
// TODO [서비스 어노테이션]
@Service
public class DB_Oracle_Api_Service {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 서비스 클래스
* // -----------------------------------------
* 2. mapper 인터페이스 메소드 호출 수행 실시
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 DB 호출]
* // [SEARCH FAST] : [로그인 사용자 인증 요청]
* // -----------------------------------------
* */
// TODO [Autowire 설정]
@Autowired
private DB_Oracle_Api_Mapper db_oracle_api_mapper;
// TODO [SEARCH FAST] : [테스트 DB 호출]
public String DB_TIME(){
// [mapper 인터페이스 호출 실시]
return db_oracle_api_mapper.DB_TIME();
}
// TODO [SEARCH FAST] : [로그인 사용자 인증 요청]
public Map PRO_UMCS_MANAGER(String id, String pw){
// [mybatis xml 에서 설정한 인풋값 명칭에 맞게 데이터 가공 실시]
Map map = new HashMap<>();
map.put("I_ID", id);
map.put("I_PW", pw);
// [mapper 인터페이스 호출 실시]
db_oracle_api_mapper.PRO_UMCS_MANAGER(map);
// [프로시저 수행 후 리턴 값이 map 에 자동으로 담긴다]
return map;
}
} // TODO [클래스 종료]
[DB_Maria_Api_Mapper]
package com.test.mobile_univ.C_Mapper.DB_Mapper_Maria;
import org.apache.ibatis.annotations.Mapper;
// TODO [매퍼 어노테이션]
@Mapper
public interface DB_Maria_Api_Mapper {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 매퍼 인터페이스
* // -----------------------------------------
* 2. 데이터베이스 쿼리문 수행 xml 리턴 값 받음
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 DB 호출]
* // -----------------------------------------
* */
// TODO [SEARCH FAST] : [테스트 DB 호출]
String MA_TIME();
} // TODO [클래스 종료]
[DB_Oracle_Api_Mapper]
package com.test.mobile_univ.C_Mapper.DB_Mapper_Oracle;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
// TODO [매퍼 어노테이션]
@Mapper
public interface DB_Oracle_Api_Mapper {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 접근 및 매퍼 인터페이스
* // -----------------------------------------
* 2. 데이터베이스 쿼리문 수행 xml 리턴 값 받음
* // -----------------------------------------
* */
/**
* // -----------------------------------------
* // TODO [빠른 로직 찾기 : 주석 로직 찾기]
* // -----------------------------------------
* // [SEARCH FAST] : [테스트 DB 호출]
* // [SEARCH FAST] : [로그인 사용자 인증 요청]
* // -----------------------------------------
* */
// TODO [SEARCH FAST] : [테스트 DB 호출]
String DB_TIME();
// TODO [SEARCH FAST] : [로그인 사용자 인증 요청]
void PRO_UMCS_MANAGER(Map map); // [프로시저 : void]
} // TODO [클래스 종료]
[DB_Maria_DataSource_Configuration]
package com.test.mobile_univ.config.DB_Maria_DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@EnableTransactionManagement
// TODO [base packages : mapper 인터페이스 파일이 저장된 폴더 경로 지정]
@MapperScan(basePackages = "com.test.mobile_univ.C_Mapper.DB_Mapper_Maria", sqlSessionFactoryRef = "MariaSqlSessionFactory")
@Configuration
public class DB_Maria_DataSource_Configuration {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 다중 설정 클래스
* // -----------------------------------------
* 2. Maria DB 연결 설정
* // -----------------------------------------
* */
@Bean(name = "MariaDataSource") // TODO [MapperScan sqlSessionFactoryRef 에서 지정한 명칭]
@ConfigurationProperties("spring.datasource.maria") // TODO [application.yml 파일에서 datasource 명칭 지정 설정]
@Primary
public DataSource viewDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "MariaSqlSessionFactory") // TODO [MapperScan sqlSessionFactoryRef 에서 지정한 명칭]
@Primary
public SqlSessionFactory viewSqlSessionFactory(@Qualifier("MariaDataSource") DataSource dataSource, ApplicationContext applicationContext) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
// TODO [mybatis xml 파일이 저장된 폴더 경로 설정]
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:D_Mybatis/DB_Maria_Mybatis/*.xml"));
return sqlSessionFactoryBean.getObject();
}
@Bean(name = "MariaSqlSessionTemplate")
@Primary
public SqlSessionTemplate viewSqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
[DB_Oracle_DataSource_Configuration]
package com.test.mobile_univ.config.DB_Oracle_DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@EnableTransactionManagement
// TODO [base packages : mapper 인터페이스 파일이 저장된 폴더 경로 지정]
@MapperScan(basePackages = "com.test.mobile_univ.C_Mapper.DB_Mapper_Oracle", sqlSessionFactoryRef = "OracleSqlSessionFactory")
@Configuration
public class DB_Oracle_DataSource_Configuration {
/**
* // -----------------------------------------
* TODO [클래스 설명]
* // -----------------------------------------
* 1. 데이터베이스 다중 설정 클래스
* // -----------------------------------------
* 2. Oracle DB 연결 설정
* // -----------------------------------------
* */
@Bean(name = "OracleDataSource") // TODO [MapperScan sqlSessionFactoryRef 에서 지정한 명칭]
@ConfigurationProperties("spring.datasource.oracle") // TODO [application.yml 파일에서 datasource 명칭 지정 설정]
public DataSource viewDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "OracleSqlSessionFactory") // TODO [MapperScan sqlSessionFactoryRef 에서 지정한 명칭]
public SqlSessionFactory viewSqlSessionFactory(@Qualifier("OracleDataSource") DataSource dataSource, ApplicationContext applicationContext) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
// TODO [mybatis xml 파일이 저장된 폴더 경로 설정]
sqlSessionFactoryBean.setMapperLocations(applicationContext.getResources("classpath:D_Mybatis/DB_Oracle_Mybatis/*.xml"));
return sqlSessionFactoryBean.getObject();
}
@Bean(name = "OracleSqlSessionTemplate")
public SqlSessionTemplate viewSqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
[MvcConfiguration]
package com.test.mobile_univ.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MvcConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//WebMvcConfigurer.super.addResourceHandlers(registry);
// TODO [resource >> static >> 리소스 연결]
registry.addResourceHandler("/**").addResourceLocations("classpath:/templates/", "classpath:/static/");
}
}
[DB_Maria_Api_Mybatis.xml]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper 인터페이스 지정 -->
<mapper namespace="com.test.mobile_univ.C_Mapper.DB_Mapper_Maria.DB_Maria_Api_Mapper">
<!--
// =========================================
// [파일 설명]
// =========================================
1. DB 접근 및 쿼리, 프로시저, 함수 호출 수행 파일
// =========================================
2. mapper 리턴 데이터를 받을 인터페이스 설정 필요
// =========================================
-->
<!--
// =========================================
// [빠른 로직 찾기 : 주석 로직 찾기]
// =========================================
// [SEARCH FAST] : [테스트 DB 호출]
// =========================================
-->
<!--
// =========================================
// [SEARCH FAST] : [테스트 DB 호출]
// =========================================
// [select id] [mapper 인터페이스 지정 메소드] : MA_TIME
// =========================================
-->
<select id="MA_TIME" resultType="String">
<![CDATA[
select DATE_FORMAT(sysdate(), '%Y%m%d%H%i%s')
]]>
</select>
</mapper>
[DB_Oracle_Api_Mybatis.xml]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- mapper 인터페이스 지정 -->
<mapper namespace="com.test.mobile_univ.C_Mapper.DB_Mapper_Oracle.DB_Oracle_Api_Mapper">
<!--
// =========================================
// [파일 설명]
// =========================================
1. DB 접근 및 쿼리, 프로시저, 함수 호출 수행 파일
// =========================================
2. mapper 리턴 데이터를 받을 인터페이스 설정 필요
// =========================================
-->
<!--
// =========================================
// [빠른 로직 찾기 : 주석 로직 찾기]
// =========================================
// [SEARCH FAST] : [테스트 DB 호출]
// =========================================
// [SEARCH FAST] : [로그인 사용자 인증 요청]
// =========================================
-->
<!--
// =========================================
// [SEARCH FAST] : [테스트 DB 호출]
// =========================================
// [select id] [mapper 인터페이스 지정 메소드] : DB_TIME
// =========================================
-->
<select id="DB_TIME" resultType="String">
<![CDATA[
select TO_CHAR(SYSDATE, 'YYYY-MM-DD')
from dual
]]>
</select>
<!--
// =========================================
// [SEARCH FAST] : [로그인 사용자 인증 요청]
// =========================================
// [select id] [mapper 인터페이스 지정 메소드] : PRO_UMCS_MANAGER
// =========================================
// [resultMap] : 프로시저 수행 후 리턴 메시지 및 커서 테이블이 담길 맵
// =========================================
-->
<resultMap id="PRO_UMCS_MANAGER_RESULT" type="hashmap" />
<select id="PRO_UMCS_MANAGER" parameterType="hashmap" statementType="CALLABLE">
<![CDATA[
{ call PRO_UMCS_MANAGER (
#{I_ID},
#{I_PW},
#{O_MSG, mode=OUT, jdbcType=VARCHAR, javaType=string, resultMap=PRO_UMCS_MANAGER_RESULT},
#{O_CURSOR, mode=OUT, jdbcType=CURSOR, javaType=ResultSet, resultMap=PRO_UMCS_MANAGER_RESULT}
)}
]]>
</select>
</mapper>
[application.yml]
# TODO [공통으로 사용]
spring:
# [profiles : 배포 시 설정 이름 : spring 내 설정]
profiles:
active: prod
# [devtools : spring 내 설정]
devtools:
livereload:
enabled: true
# [datasource : spring 내 설정]
# [url : port 및 servername 작성]
# [username : 스키마 명칭]
# [password : 비밀 번호]
datasource:
# [Oracle DB]
oracle:
driver-class-name: oracle.jdbc.OracleDriver
jdbc-url: jdbc:oracle:thin:@125.78.166.235:1521:test
username: test
password: test#4567
hikari:
maximum-pool-size: 20
connection-timeout: 30000
# [Maria DB]
maria:
driver-class-name: org.mariadb.jdbc.Driver
jdbc-url: jdbc:mariadb://3.44.138.63:3306/test?characterEncoding=UTF-8&serverTimezone=UTC&characterEncoding=utf8&noAccessToProcedureBodies=true
username: test
password: test@1234
hikari:
maximum-pool-size: 20
connection-timeout: 30000
# TODO [접속 포트 설정]
# 접속 주소 : http://localhost:7000/index.html
# 파일 경로 : config 폴더 >> MvcConfiguration 파일 >> 파일 경로 설정
# index.html 파일 : resource 폴더 >> templates 폴더 >> index.html 파일
server:
port: 7000
# TODO [mybatis 설정 : xml 파일 경로 지정 필요]
mybatis:
mapper-locations: classpath:D_Mybatis/*.xml
type-aliases-package: com.test.mobile_univ
[build.gradle]
plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
// TODO [war file create]
id 'war'
}
group = 'com.test'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
//configurations {
// compileOnly {
// extendsFrom annotationProcessor
// }
//}
// TODO [war 파일 빌드 명칭 변경]
war {
archiveName 'mobile_univ.war'
}
// TODO [war file create]
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// TODO [DB JDBC]
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
// TODO [Oracle DB]
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
// TODO [Mysql DB]
runtimeOnly 'mysql:mysql-connector-java'
// TODO [Maria DB]
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation 'javax.servlet:jstl'
}
tasks.named('test') {
useJUnitPlatform()
}
[결과 출력]
[오라클 DB 연결 확인]
[마리아 DB 연결 확인]
반응형
'Spring' 카테고리의 다른 글
38. (spring/스프링) mybatis 에서 mysql 프로시저 호출 및 리턴 OUT 메시지 확인 실시 (0) | 2022.06.06 |
---|---|
37. (spring/스프링) mybatis 에서 mysql 생성된 함수 (function) 호출 및 리턴 결과 확인 (0) | 2022.06.06 |
35. (spring/스프링) build Artifacts 사용해 war 파일 생성 방법 (0) | 2022.05.13 |
34. (spring/스프링) build gradle 설정에서 war 파일 생성 명칭 변경 방법 (0) | 2022.05.13 |
33. (spring/스프링) [mybatis] [MSSQL/PROCEDURE] 프로시저 호출 방법 정의 (0) | 2022.04.08 |
Comments