Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

soozya

[SPRING MyBatis] 게시판 만들기 기본 설정 본문

👩🏻‍💻프로젝트/👩🏻개인프로젝트

[SPRING MyBatis] 게시판 만들기 기본 설정

soozya 2023. 9. 15. 15:59

- 기존 팀프로젝트는 모델2 방식으로 게시판을 만들었어서 개인 프로젝트에서만큼은 스프링으로 개발해보고 싶었다..!

  근데 이제 게시판 부분 코딩하는 내내 "도대체 왜 안 되는데?" 와 "도대체 갑자기 왜 되는데?"가 반복되고,

  안되니까 짜증나고.. 약간 울고 싶었지만 잘 참아냈다... 난 얼은이니까..🤦🏻‍♀️ 그래서 기간이 다소 길어진 게시판 만들기..! 

  아무튼 내가 해냄😉

 


 

[💬설명]

📌 MyBatis : xml 파일을 이용해서 DB관리를 해주는 프레임워크 메서드를 호출하는 것으로, 개발시간이 단축되고

                      코딩의 양이 줄어들어 다소 간편해진다는 장점이 있지만.... 그렇지만 아주 힘들었던...ㅠㅠ 익숙해질까?

 

 

1. Mybatis와 관련된 라이브러리 파일 다운받기

  - 요거 두개 먼저 복사해 옴

 


2. jdbc.properties 파일에 환경설정하기

1️⃣ WEB-INF/jdbc.properties 파일에 driverClassName, uri, username, pw를 작성한다. 

 

2️⃣ 설정 중 발생한 에러 

Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied

 

👉🏻 이거 보고 DB에 연결된 아이디랑 비밀번호가 틀린가보다 하고 jdbc.properties 파일 확인하니 비밀번호 틀림..^^

      제대로 된 비밀번호 입력하니 실행 성공...ㅎ 정신체리....

 


32. web.xml

1️⃣ 외부 DB와 관련된 환경설정 파일(dataAccessContext-local.xml)을 불러오기 위해 <param> 태그 사용

  - <param-name>은 매개변수명, <param-value>는 경로포함 파일명이 되겠습니다.


4. dataAccessContext-local.xml 

1️⃣ jdbc.driverClassName을 읽어오기 위해 dataAccessContext-local.xml 파일을 생성한다.

   - jdbc.properties 파일의 저장된 값을 불러오기 위해 코딩 

 

2️⃣ Mybatis를 이용한 DB관리를 위해 sqlSessionFactoryBean 생성 

  - 전체 테이블에 대한 정보인 SqlMapConfig.xml 파일을 불러오기 위해 사용 

 


5. SqlMapConfig.xml

1️⃣ DB관리를 위해 필요한 환경설정 파일임

2️⃣ <typeAliases> : DB 컬럼의 자료형이나 Java 클래스의 패키지 경로를 간결하게 지정하기 위해 사용

   - alias는 별칭입니당

3️⃣ <mappers> : 접속 시 불러올 테이블에 대한 정보(sql구문) xml파일을 지정해줄 때 사용하는 태그

   - resource 부분에 불러오려는 작업 테이블 파일을 설정해주었음

 


6. board-servlet.xml

1️⃣ 요청명령어를 등록해보자!

  - DB관리를 위한 sqlSessionFactory도 불러오구용...

 

2️⃣ setter 메서드 호출 위해 요청명령어를 등록해보았움 

  - 글쓰기, 삭제, 상제보기, 수정하기 모두 비슷한 형태로..!


📌 board-servlet.xml과 dataAccessContext-local.xml의 관계

 

1️⃣ dataAccessContext-local.xml

 

2️⃣ board-servlet.xml

 # 27라인에서 SqlMapBoardDAO 클래스 가져오기

   -  <property  ref = DB연결 객체> : dataAccessContext-local.xml의 id값 가져오기

 


7. tripboard.xml과 BoardDAO인터페이스, SqlMapBoardDAO 설정하기

1️⃣ 기존 모델2 방식으로 코딩했을 때는 BoardDAO 파일에 sql구문도 다 쓰느라 코드가 길었지만

       파일이 늘어난 대신 코드는 간단해졌음

 

[모델2 방식]

 

2️⃣ Mybatis 방식으로 코딩했을 때 

  1) tripboard.xml

    - 메서드에서 사용할 sql 구문.. 위랑 비교했을 때 아주 간단함

 

 2) BoardDAO.java 인터페이스 설계

   - 게시판에서 공통으로 사용할 메서드를 추상 메서드로 선언하는 것임

   -  DataAccessException : spring전용 예외처리 클래스로 기존에 쓰던 try ~ catch는 생략 가능한

 

3)SqlMapBoardDAO.java

  - sql구문을 작성한 tripboard.xml에서 호출할 해당 id 값을 설정하는 것이다.

 

 

 


게시판 코딩을 위한 기본 설정을 했으니까 이제 다음 글부터 게시판 만들기 정리를 시작해보겠음!!