Spring Boot를 이용하여 Oracle에 연결 하고 간단한 쿼리를 실행하는 예제 입니다.  일반 Spring 작업보다 얼마나 간소화가 되었는지 확인 하기 위해 예제를 만들어 봅니다.

 

- 작업 환경

Spring Tool Suite 4 Version: 4.5.1.RELEASE

JAVA 1.8

Oracle 11g XE


일단 Spring Boot 용 프로젝트를 생성 합니다.


spring boot mybatis oracle


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


spring boot mybatis oracle


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


spring boot mybatis oracle


프로젝트에 포함할 라이브러리를 선택 합니다여기서는 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 와 폴더 구조 그리고 파일의 최종 모습 입니다.


spring boot mybatis oracle


이제 필요한 폴더와 파일을 하나씩 추가 해봅니다.

 

vo 패키지 생성

 

com/copycoding/demo에서 마우스 우측 버튼을 클릭 하고 package를 선택 합니다.


spring boot mybatis oracle


vo 패키지를 하나 생성 하고


spring boot mybatis oracle


테스트용으로 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 추가 합니다.


spring boot mybatis oracle


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


spring boot mybatis oracle


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


spring boot mybatis oracle


생성한 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 패키지를 생성 하고 파일을 만들어 봅니다처음에 보여드린 것 처럼 저는 아래처럼 생성 했는데 그냥 한곳에 만들어도 되고 편한대로 패키지를 생성하면 됩니다.


spring boot mybatis oracle


단순 조회라 내용도 별로 없습니다.

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/


spring boot mybatis oracle


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


- copy coding -



+ Recent posts