Spring Boot를 이용하여 Oracle에
연결 하고 간단한 쿼리를 실행하는 예제 입니다. 일반 Spring 작업보다 얼마나
간소화가 되었는지 확인 하기 위해 예제를 만들어 봅니다.
- 작업 환경
Spring Tool Suite 4 Version: 4.5.1.RELEASE
JAVA 1.8
Oracle 11g XE
일단 Spring Boot 용 프로젝트를 생성 합니다.

상단 메뉴에서 File > New > Spring Starter
Project를 이용해서 프로젝트를 생성해도 됩니다.

기본 값을 그대로 사용하고 Next 버튼을 클릭 하거나 원하는
부분을 수정 입력 합니다.

프로젝트에 포함할 라이브러리를 선택 합니다. 여기서는 MyBatis, Oracle,
Web 만 추가하는 것으로 하고 Finish 버튼을 클릭 하면 프로젝트가 생성 됩니다.
pom.xml은 손대지 않고 생성한 그대로 사용 합니다.
application.properties에 필요한 설정을 추가합니다.
#datasource
(oracle)
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521/xe
spring.datasource.username=copycoding
spring.datasource.password=copycopy
#vo
location
mybatis.type-aliases-package=com.copycoding.demo.vo
#xml
location
mybatis.mapper-locations=classpath:mappers/**/*.xml
server.port=9090 |
oracle 관련 정보와 VO 파일이
있는 위치 그리고 쿼리용 xml이 있는 위치를 설정했습니다. 많은 작업들을 properties에
선언 하는 것으로 해결 됩니다.
만들어볼 프로젝트에 필요한 package 와 폴더 구조 그리고 파일의
최종 모습 입니다.

이제 필요한 폴더와 파일을 하나씩 추가 해봅니다.
vo 패키지 생성
com/copycoding/demo에서 마우스 우측 버튼을 클릭 하고
package를 선택 합니다.

vo 패키지를 하나 생성 하고

테스트용으로 vo 파일을 하나 생성 합니다.
EnterpriseMemberVo.java
package com.copycoding.demo.vo;
public class
EnterpriseMemberVo {
private String entrprsMberId;
private String entrprsSeCode;
private String bizrno;
private String jurirno;
private String cmpnyNm;
private String cxfc;
private String zip;
private String adres;
getter/setter는 생략 |
mapper 폴더 생성
src/main/resources에
folder 추가 합니다.

폴더 명은 mappers/login으로 입력 했습니다. 이런 로그인을 구현할건 아닌데...

생성한 mappers 폴더에 EnterpriseMemberVo를
이용한 쿼리를 하나 생성 합니다. DB를
뒤지다 그냥 걸린 테이블 입니다.

생성한 mappers 폴더에 loginSqlmap.xml으로
파일을 생성 합니다. 파일 내용도
로그인과는 거리가 먼데 그냥 명칭을 맞추기 위해서 적어 봤습니다.
쿼리는 EnterpriseMemberVo(아래 부분에서 생성합니다)를 이용한 단순 조회용 이고 DB를 뒤지다 그냥 걸린 테이블 입니다.
loginSqlmap.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 namespace="com.copycoding.demo.dao.LoginDao">
<select id="selectListEnterpriseMember"
parameterType="EnterpriseMemberVo" resultType="EnterpriseMemberVo">
/* selectListEnterpriseMember
*/
SELECT
ENTRPRS_MBER_ID as
entrprsMberId
,ENTRPRS_SE_CODE as
entrprsSeCode
,BIZRNO as bizrno
,JURIRNO as jurirno
,CMPNY_NM as cmpnyNm
,ZIP as zip
,ADRES as adres
FROM
COMTNENTRPRSMBER
</select>
</mapper> |
mapper를 사용해서 Dao
interface만 작성해도 사용 가능하도록 합니다.
java program 생성
이제 중요한 부분은 끝났고 나머지 필요한 java 파일만 평소대로
만들면 되겠군요.
controller, service, dao 패키지를 생성 하고 파일을 만들어 봅니다. 처음에 보여드린 것 처럼 저는 아래처럼 생성 했는데 그냥 한곳에 만들어도
되고 편한대로 패키지를 생성하면 됩니다.

단순 조회라 내용도 별로 없습니다.
controller를 아무 이름으로나 작성 합니다.
package com.copycoding.demo.controller;
import java.util.List;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import
org.springframework.web.bind.annotation.ModelAttribute;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.ResponseBody;
import
org.springframework.web.bind.annotation.RestController;
import com.copycoding.demo.service.LoginService;
import com.copycoding.demo.vo.EnterpriseMemberVo;
@RestController
public class
TestController {
@Autowired
LoginService loginService;
@RequestMapping("/member/")
public @ResponseBody
List<EnterpriseMemberVo> selectListEnterpriseMember(
@ModelAttribute("searchVO")
EnterpriseMemberVo enterpriseMemberVo, ModelMap medel) throws Exception {
List<EnterpriseMemberVo> eList = loginService.selectListEnterpriseMember(enterpriseMemberVo);
return eList;
}
} |
입력 받는게 없지만 그래도 구색은 맞추어서 작업을 해 보았습니다.
RestController로 작업해서 화면을 만들 필요 없이 결과를
그냥 리턴 해도 결과를 확인할 수 있습니다.
Service 파일과 Imple도
작성 합니다.
package com.copycoding.demo.service;
import java.util.List;
import com.copycoding.demo.vo.EnterpriseMemberVo;
public interface LoginService {
List<EnterpriseMemberVo>
selectListEnterpriseMember(EnterpriseMemberVo vo);
} |
ServiceImpl
package com.copycoding.demo.service;
import java.util.List;
import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.copycoding.demo.dao.LoginDao;
import com.copycoding.demo.vo.EnterpriseMemberVo;
@Service
public class
LoginServiceImpl implements LoginService {
@Autowired
LoginDao loginDao;
@Override
public List<EnterpriseMemberVo>
selectListEnterpriseMember(EnterpriseMemberVo vo)
{
// TODO Auto-generated method stub
return loginDao.selectListEnterpriseMember(vo);
}
} |
Dao(Mapper)도 위에서 작성한 쿼리용 xml과 철자가 틀리지 않도록 작성해 줍니다.
package com.copycoding.demo.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.copycoding.demo.vo.EnterpriseMemberVo;
@Mapper
public interface
LoginDao {
public List<EnterpriseMemberVo>
selectListEnterpriseMember(EnterpriseMemberVo enterpriseMemberVo);
} |
selectListEnterpriseMember()
요 함수 이름을 xml에서는
select id로 사용을 합니다.
이렇게 해서 모든 작업이 완료 되었습니다. 테스트 할 일만 남았습니다.
결과
http://localhost:9090/member/

이상 없이 데이터를 잘 읽어와서 보여주고 있습니다.
- copy coding -