코딩하렴

SPRING-mybatis-Oracle 연결하기 -1

by 으렴






Spring을 사용하며 굉장히 편하다고 느끼는 것은 DB관리이다.


mybatis를 사용하면 코드가 비교적 깔끔해 진다. 



예전에 jsp로 만든 MVC project의 일부이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
    Connection con;
    PreparedStatement pstmt;
    ResultSet rs;
    Board_Bean b_bean=new Board_Bean();
    int result=0;
 
    public boolean boardInsert(Board_Bean board){
        String sql="";
 
        int result=0;
 
        try{
            sql = "INSERT INTO LG_BOARD(BOARD_NUMBER,BOARD_TITLE,BOARD_CONTENT,BOARD_IMAGE_PATH,BOARD_DATE,BOARD_VIEW_COUNT,BOARD_CATEGORIES,BOARD_TOPICS,BOARD_CLASS,BOARD_WRITER)"
            sql +=     "VALUES (BOARD_NUMBER_PLUS.nextval,?,?,'PATH',SYSDATE,0,?,?,?,?)";
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, board.getBoard_title());
            pstmt.setString(2, board.getBoard_content());
            pstmt.setString(3, board.getBoard_categories());
 
            pstmt.setString(4, board.getBoard_topics());
            pstmt.setString(5, board.getBoard_class());
            pstmt.setString(6, board.getBoard_writer());
            result=pstmt.executeUpdate();
 
            if(result==0)return false;
 
            return true;
        }catch(Exception ex){
            System.out.println("boardInsert ERROR : "+ex);
        }finally{
            if(rs!=nulltry{rs.close();}catch(SQLException ex){}
            if(pstmt!=nulltry{pstmt.close();}catch(SQLException ex){}
        }
        return false;
    }
cs




이때의 코드를 살펴보자면 connection pool을 사용했다.


java 코드에 그대로 sql문도 들어가고 Database와 연결하는 connection pool을 열었다닫았다 해 주어야 했다.


exception이 발생하면 또 발생하는 대로 처리도 해주고 모든 것을 개발자가 설정을 해 주어야했다. 


spring에서는 mybatis를 사용하면 여러모로 DB연결이나 연결해제 등을 알아서 해 주기 때문에 익숙해지면 편하게사용할 수 있다.




지금부터 이 게시글 에서는 Spring Project와 Oracle Database를 연결 할 것이다.


그 가운데 연결을 도와주는 것이 mybatis라는 친구이다.



지금부터 간단하게 member라고 하는 기능을 만들고 그 안에서 oracle의 table에 접근하여 id와 name을 가져오는 작업을 할 것이다.




DB 연결하기


project를 처음으로 생성한다 내가 사용한 package경로는 com.spring.test를 사용하였다.


그리고 Project를 실행시켜서 제대로 돌아가는지 확인을 한다. (한글 처리도 하길 권장 ☞ 한글처리 하는 법 )


서버가 정상적으로 작동한다면 home.jsp로 가서 다음과 같은 코드를 추가시킨다.



1
<a href="./dbtest">DB TEST</a>
cs



a태그를 추가시키면 a태그 안에 mapping된 controller로 가서 view 페이지가 호출이 된다.




DB TEST를 눌러봐도 아무런 변화가 없을 것이다.


이렇게 되었으면 불러올 jsp 파일을 하나 만들어 준다.


어디에?




src/main/webapp/WEB-INF/views/ 경로로 들어가서


calltest.jsp를 생성 해 준다. 파일이름 너무 대충지은것 같은데




그리고 그안에 대충


1
<p>DB TEST 할 곳 입니다</p>
cs


이렇게 적어 둔다.




이렇게 jsp page만 만든다고 서버를 열면 열릴 것 같지만 절대 안 열린다.


이제 controller에다가 여기에 calltest라는 jsp파일이 있다고 알려주어야 한다.


이제 새로운 기능을 추가 해 보도록 하자.






com.spring.test안에 Member를 만들고 그안에 package를 4개 만든다.


이 4가지 패키지의 용도를 설명하자면 다음과 같다.



- Controller

@Controller 어노테이션을 활용한다.


view가 mapping된 곳을 가르쳐주고 요청한 정보를 담아주는 역할까지 함께 함.


- Service    

@Service 어노테이션을 달아준다.


주로 원하는 정보를 추합하는 모든 비즈니스 로직을 여기서 수행한다.


- DAO(Data Access Object)

데이터 접근 객체의 준말. @Repository 어노테이션을 붙여준다.


주로 DB와 연결되는 로직을 담당한다.


- DTO(Data Transfer Object)

계층간 데이터 교환을 위한 자바 빈 객체를 뜻한다.


주로 요청한 데이터를 한데 묶어 보내기 위해 사용 된다.





package를 다 만들고 나면 이제 그 안을 채워 넣을 java 파일을 만들어야 한다.


 

Controller를 제외한 DAO와 Service에서는 interface를 만들고 그것을 구현하는 class를 만들어준다.


그리고 그 구현 class에 위의 주황색으로 표시한 어노테이션을 붙여주도록 한다.




1
2
3
4
5
6
7
8
9
10
11
12
@Controller
public class MemberController {
    
}
@Repository
public class MemberDAO_Impl implements MemberDAO {
 
}
@Service
public class MemberService_Impl implements MemberService{
 
}
cs



이렇게!


그리고 미리 만들어 놓은 calltest.jsp를 부를 수 있는 함수를 만들어 줄 것이다.


이제 MemberController.java로 가자


여기에 이제 home.jsp에서 a태그로 부른 ./dbtest를 사용할 수 있게 만들어 줄 것이다.




1
2
3
4
5
6
7
8
9
@Controller
public class MemberController {
    
    @RequestMapping("dbtest")
    public String dbtest() {
        return "calltest";
    }
    
}
cs



@RequestMapping 어노테이션 안에 들어있는 값은 매핑된 문자열이다.


나는 이렇게 부르면 return되어있는 곳을 불러줘! 라는 말이된다.



이렇게 저장하고 서버를 Run시켜보면 


깔끔하게



뜬다.


물론 DB TEST a태그를 눌러야 한다.


즉 Controller에서 잘 연결을 시켜서 jsp화면을 출력했다는 말이 된다.



jsp화면을 띄우고 이번 게시글을 마친다.


다음 게시글에서 보십시다 투비컨티뉴

'Web > SPRING' 카테고리의 다른 글

SPRING-mybatis-Oracle 연결하기 -3  (0) 2018.12.21
SPRING-mybatis-Oracle 연결하기 -2  (0) 2018.12.20
SPRING 한글 처리하기  (0) 2018.12.18
SPRING MVC PROJECT 구조 이해하기  (0) 2018.12.17
SPRING 이해하기  (0) 2018.11.30

사이트의 정보

코딩하렴

으렴

활동하기