soozya
[SPRING MyBatis] 게시판 만들기 기본 설정 본문
- 기존 팀프로젝트는 모델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 값을 설정하는 것이다.
게시판 코딩을 위한 기본 설정을 했으니까 이제 다음 글부터 게시판 만들기 정리를 시작해보겠음!!
'👩🏻💻프로젝트 > 👩🏻개인프로젝트' 카테고리의 다른 글
[React] Git과 연결하기 (0) | 2023.11.07 |
---|---|
[BACK] 글 삭제하기 (Spring MyBatis) (0) | 2023.09.20 |
[FRONT, BACK] 글 상세보기 (Spring MyBatis) (0) | 2023.09.20 |
[FRONT, BACK] 글 쓰기 (Spring MyBatis) (0) | 2023.09.19 |
[FRONT, BACK] 글 목록보기 (Spring MyBatis) (0) | 2023.09.19 |