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!=null) try{rs.close();}catch(SQLException ex){} if(pstmt!=null) try{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 |
사이트의 정보
코딩하렴
으렴