# 3 스프링 MyBatis 설정 하 기 및 로그 출력 - 스프링 프레임워크 게시판 : Spring Framework MyBatis Log 4 jdbc " 개발자 샤쿠 ( Syaku ) " 
 07 - 03 03 : 38 
 # 3 스프링 MyBatis 설정 하 기 및 로그 출력 - 스프링 프레임워크 게시판 : Spring Framework MyBatis Log 4 jdbc 
 개발 노트 / Spring | 2014 . 7 . 21 . 11 : 25 
 소스 파일 : source - 3 . zip 
 3 . myBatis 와 Spring 연동 하 기 
 게시판 프로젝트 에 사용 되 는 RDBMS 는 MySQL 5 . x 이상 을 사용 하 고 언어 셋 은 utf - 8 이 다 . 
 myBatis 는 두 가지 버전 이 있 다 . myBatis 2 . x 버전 은 원래 iBatis 라 불렸 고 , 현재 까지 배포 되 고 있 는 myBatis 3 . x 버전 이 myBatis 이 다 . 두 버전 은 사용법 이 전혀 다르 므로 혼동 이 없 어야 한다 . 그리고 iBatis 즉 2 . x 버전 은 패치 작업 이 중단 되 었 고 , 3 . x 버전 만 패치 를 지원 해 고 있 다 . 
 myBatis 와 MySQL 을 사용 하 기 위해 아래 의 라이브러리 를 설치 해야 한다 . 
 spring - jdbc : Spring 에서 지원 하 는 JDBC 
 mysql - connector - java : MySQL 커넥션 드라이브 를 제공 
 mybatis : myBatis 
 mybatis - spring : Spring 에서 연동 을 지원 하 는 myBatis 
 commons - dbcp : 커넥션 풀 을 담당 하 는 Apache Commons DBCP 
 commons - lang : myBatis 연동 과 관련 은 없 지만 , 빈번 하 게 사용 되 는 문자열 라이브러리 를 Aapche Commons Lang 로 통일 함 . 
 스프링 에 라이브러리 를 설치 하 려면 pom . xml 에 dependency 를 추가 하 면 된다 . 
 위 라이브러리 들 을 Maven Repository 에서 검색 후 적당 한 버전 의 dependency 를 복사 해서 아래 와 같이 등록 한다 . 
 @ 소스 pom . xml 
 <!-- spring - jdbc --> 
 <!-- commons - dbcp --> 
 자동 으로 Maven 이 빌드 된다 . 만약 안 될 경우 수동 으로 빌 드 한다 . 
 빌드 가 완료 되 면 설치 된 라이브러리 는 Maven Dependencies 폴더 에서 확인 할 수 있 다 . 
 DB Connection 과 myBatis 설정 파일 만들 기 
 설정 파일 들 은 resource 폴더 에 생성 한다 . 
 MySQL 접속 정보 설정 프로 퍼티 를 src / main / resource 경로 아래 생성 한다 . 
 @ 소스 jdbc . properties 
 RDBMS 드라이브 , 접속 경로 , 계정 , 암호 순 으로 항목 을 입력 한다 . 
 다음 은 스프링 에서 MySQL 에 접속 하 는 설정 파일 을 생성 한다 . 
 resource 폴더 에 는 다양 한 정보 를 저장 히 기 때문 에 폴더 를 구분 하 여 관리 하 고 resource 폴더 아래 config / spring / context 폴더 ( 패킷 ) 를 생성 하 고 아래 의 파일 도 생성 한다 . 
 jdbcProp 는 jdbc . properties 파일 을 읽 어 온다 . 
 dataSource 는 Apache Commons DBCP 를 이용 하 여 MySQL 과 연결 을 진행 한다 . 
 디비 접속 담당 은 스프링 에서 Apache Commons DBCP 가 하 며 , myBatis 는 맵 퍼 를 통한 쿼리 를 실행 하 고 값 들 을 주 고 받 는 역활 을 담당 한다 . 
 @ 소스 mybatis - config - base . xml 
 <!-- java . sql . Timestamp 를 java . util . Date 형 으로 반환 --> 
 위 소스 는 myBatis 설정 정보 의 파일 이 다 . 필요 한 옵션 을 추가 하 면 된다 . 
 옵션 에 대한 상세 한 설명 은 mybatis . org 튜토리얼 에서 참조 할 수 있 다 . 
 다음 은 스프링 과 myBatis 연동 하 는 설정 파일 이 다 . 
 @ 소스 context - mybatis . xml 
 < value > classpath *: com / syaku / **/ dao / * Mapper . xml </ value > 
 이젠 설정 파일 을 하위 컨텍스트 에서 사용 할 수 있 게 root - context . xml 에 impoert 시킨다 . 
 root - context . xml 파일 의 위치 는 src / main / webapp / WEB - INF / spring 이 다 . 
 스프링 프레임워크 는 아주 간결 하 게 myBatis 와 연동 을 지원 한다 . 
 원래 myBatis 사용 하 기 위해 맵 퍼 들 을 직접 호출 해야 하 지만 스프링 에서 는 스캔 을 통해 자동 적 으로 맵 퍼 를 호출 할 수 있 다 . 
 프로 퍼티 mapperLocations 노드 에서 스캔 하 려는 맵 퍼 의 경로 범위 를 설정 하 면 경로 와 일치 하 는 맵 퍼 를 모두 호출 하 게 된다 . 그리고 맵 퍼 의 인터페이스 를 자동 으로 스캔 하 는 기능 도 제공 하 고 있 다 . 
 맵 퍼 의 인터페이스 를 생성 하 여 사용 하 는 것 은 필수 조건 은 아니 다 . 다만 myBatis 에서 사용 하 는 것 을 권장 한다 . 
 주어진 SQL 구문 의 파라미터 와 리턴 값 을 설명 하 는 인터페이스 ( 예 를 들 면 , BlogMapper . class ) 를 사용 하 여 , 문자열 처리 오류 나 타입 캐스팅 오류 없이 좀 더 타입 에 안 전하 고 깔끔 하 게 실행 할 수 있 기 때문 이 라고 한다 . 
 좀 더 자세 한 사항 은 myBatis 메뉴 얼 에서 SqlSessionFactory 에서 SqlSession 만들 기 섹션 을 참조 하 면 된다 . 
 여기 까지 스프링 과 myBatis 연동 을 위한 설정 작업 은 모두 마쳤 다 . 다음 은 데이터 를 조회 하 고 출력 하 는 작업 을 하 기 로 한다 . 
 게시판 테이블 생성 하 고 , 테이블 항목 ( 필드 ) 에 맞 는 VO 를 생성 한다 . 
 VO ( Value Object ) 는 DB 데이터 를 조회 후 결과 를 담 는 객체 를 말 한다 . 
 @ 소스 게시판 테이블 생성 쿼리 
 CREATE TABLE ` bbs ` ( 
 ` subject ` varchar ( 250 ) DEFAULT NULL , 
 ` reg _ datetime ` char ( 14 ) DEFAULT NULL , 
 VO 를 생성 하 기 위해 src / main / java 에 아래 의 패킷 을 생성 한다 . 
 com . syaku . bbs . dao 
 @ 소스 BbsVo . java 
 다음 은 myBatis 에서 CRUD 를 작업 할 맵 퍼 를 생성 한다 . 
 CRUD 란 Create Read Update Delete 의 작업 을 말 한다 . 
 @ 소스 BbsMapper . xml 
 SELECT * FROM bbs 
 INSERT INTO bbs ( user _ name , subject , content , reg _ datetime ) VALUES ( 
 UPDATE bbs SET 
 맵 핑 인터페이스 를 사용 하 기 때문 에 parameterType 사용 하 지 않 아도 된다 . 
 다음 은 myBatis 맵 퍼 인터페이스 를 생성 한다 . 
 @ 소스 BbsMapper . java 
 context - mybatis . xml 에 Repository 어 노테이션 을 자동 으로 스캔 하 도록 작업 을 하 였 고 , 맵 퍼 인터페이스 에 @ Repository 어 노테이션 을 정의 하 였 다 . 
 다음 은 VO 와 Mapper 를 연결 해 주 는 DAO 를 생성 한다 . 
 Service 어 노테이션 을 지정 하 였 다 . 
 현재 myBatis 는 규격 화 된 프로그래밍 이 가능 하 도록 제약 사항 이 많 아 졌 다 . 그래서 iBatis 보다 복잡 해진 것 이 다 . 불편 하 다면 iBatis 를 사용 해도 무방 하 다 . 단 더 이상 iBatis 버전 업 은 지원 하 지 않 는 다 . 
 게시판 DB 데이터 적용 하 기 
 현재 만들 어 놓 은 정적 인 게시판 을 DB 와 연동 하 여 동적 인 게시판 으로 업데이트 하 는 작업 을 진행 한다 . 
 ViewController 에 myBatis CRUD 작업 을 할 수 있 게 소스 를 업데이트 한다 . 
 // Resource 어 노테이션 을 이용 하 여 BbsDao 선언 . 
 / / 게시판 상 세보 
 / / PathVariable 어 노테이션 을 이용 하 여 RESTful 방식 적용 
 / / 게시판 쓰 기 
 데이터 를 저장 하 고 갱신 하 는 비지니스 로직 2 개 가 추가 되 었 다 . 
 procBbsWrite 는 글 을 추가 하 고 수정 하 는 역활 을 하 고 , procBbsDelete 는 글 을 삭제 하 는 역활 을 한다 . 
 글 번호 를 Integer 타입 으로 사용 한 이유 는 글 을 추가 할 경우 기본 적 으로 글 번호 가 없 기 때문 에 NULL 을 받 기 위해서 이 다 . null 이거 나 0 인 경우 글 추가 작업 을 하 고 아닌 경우 수정 을 하 게 된다 . 
 각 상수 에 사용 한 어 노테이션 은 다음 과 같 다 . 
 @ RequestParameter 는 요청 된 파라 메터 의 값 을 찾 아 변수 에 담 아 주 는 역활 을 한다 . defaultValue 는 값 이 empty 인 경우 치환 하 는 작업 을 한다 . 
 defaultValue 를 지정 하 지 않 을 경우 파라 메터 값 은 필수 조건 이 기 때문 에 익 셉 션 이 발생 한다 . 
 @ ModelAttribute 는 파라 메터 값 을 Vo 에 자동 으 록 맵 핑 하 는 작업 을 한다 . 
 RedirectAttributes 는 작업 을 처리 후 리 다이렉트 된 화면 에 변수 값 을 넘겨 주 는 역활 을 한다 . 
 뷰 페이지 에 데이터 를 출력 하 는 작업 을 한다 . 
 @ 소스 bbs . list . jsp 
 < title > 스프링 프레임워크 게시판 </ title > 
 <!-- 목록 이 반복 될 영역 --> 
 @ 소스 bbs . view . jsp 
 @ 소스 bbs . write . jsp 
 < span > 제목 </ span > 
 < span > 작성자 </ span > 
 < span > 내용 </ span > 
 게시판 에 글 을 등록 해서 데이터 를 확인 한다 . 
 한글 이 깨져서 저장 되 었 다 . 이럴 경우 아래 의 소스 를 web . xml 에 추가 한다 . 
 @ 소스 web . xml 
 <!-- utf - 8 filter --> 
 다시 게시판 을 등록 해 보 고 한글 이 깨지 는 지 확인 한다 . 
 MyBatis 로그 출력 하 기 
 로그 출력 을 위해 Maven 에 log 4 jdbc 라이브러리 를 추가 한다 . 
 <!-- jdbc log --> 
 그리고 로그 출력 을 위한 설정 정보 를 추가 한다 . 
 기존 에 dataSource 를 dataSourceSpied 로 변경 하 고 위 소스 를 추가 하 면 된다 . 
 마지막 으로 로그 출력 방식 을 설정 하 기 위해 정보 를 추가 한다 . 
 / src / main / resources / log 4 j . xml 파일 을 열 어 아래 와 같이 수정 한다 . 
 @ 소스 log 4 j . xml 
 # log 4 jdbc settings development production 
 jdbc . connection : WARN WARN 
 jdbc . audit : WARN WARN 
 jdbc . sqlonly : WARN WARN 
 jdbc . sqltiming : INFO WARN 
 jdbc . resultset : WARN WARN 
 jdbc . resultsettable : INFO WARN 
 STS 콘솔 정보 를 확인 하 면 아래 와 같 은 로그 가 출력 된다 . 
 # 2 스프링 프로젝트 만들 기 - 스프링 프레임워크 게시판 : Spring Framework Create Project ( 5 ) 
 # 1 STS 설치 및 스프링 프로젝트 만들 기 - 스프링 프레임워크 게시판 : Spring Framework Hello , World ! !! ( 9 ) 
 Spring Framework , 스프링 프레임워크 
 엮인 글 0 개 / 댓글 92 개 
 손님 at 2015 . 05 . 22 08 : 23 
 글 을 정말 깔끔 하 게 잘 작성 하 셨 네요 . 디비 로 그 출력 을 어떻게 하나 궁금 해서 접속 하 게 되 었 는데 , 도움 될 만 한 다른 글 들 도 많 은 것 같 네요 . . 잘 보 고 갑니다 . 
 샤쿠 syaku at 2015 . 05 . 22 09 : 29 신고 
 더 하나 at 2015 . 06 . 05 17 : 42 
 포스트 항상 감사 하 며 잘 보 고 있 습니다 . 꾸벅 . 
 이번 포스트 의 마지막 로그 출력 을 위해서 log 4 j . xml 을 수정 하 였 더니 , 
 XML 문제 가 발생 하 였 습니다 . 
 The content of elements type " log 4 j : configuration " must match "( renderer *, appender *, plugin *,( category | logger ) *, root ? , ( categoryFactory | loggerFactory ) ? )" 
 참고 로 log 4 j . xml 은 위 의 수정 할 내용 을 <!-- Root Logger --> 항목 밑 에 붙였 습니다 . 
 샤쿠 syaku at 2015 . 06 . 08 13 : 35 신고 
 오타 가 있 지 않 을까요 ? ? 글 로 봐서 는 답변 이 어려울 것 같 네요 ~ 
 건우 at 2016 . 02 . 09 16 : 39 
 Root Logger 위 에 붙이 면 되 네요 ~ 
 로거 처리 도 순서 가 있 는 것 같 습니다 . ㅎㅎ 
 스프링 초보 at 2015 . 06 . 13 19 : 26 
 안녕 하 세요 , 블로그 게시 글 잘 보 고 있 습니다 ! ! 
 질문 이 하 나 있 어서 질문 드리 겠 습니다 . 
 토비 스프링 보 면서 같이 공부 하 고 있 는데 , , 포스팅 하 신 글 에 BbsMapper 인터페이스 에 @ Repository 어 노테이션 을 붙이 시 고 , 
 BbsDao 에 @ Service 어 노테이션 을 사용 하 셨 는데 , 
 제 가 잘못 알 수 도 있 지만 알 고 있 는 건 , @ Service 는 서비스 계층 빈 을 구분 하 기 위해 쓰 고 , @ Repository 는 Dao 를 구현 한 class 에 사용 한다고 알 고 있 는데 . . 
 어 노테이션 이 저렇 게 사용 하 는 게 맞 는 건가요 . .?? 맞 다면 왜 저렇게 사용 이 된 건지 좀 알려 주 세요 . . 
 그리고 한 가지 질문 이 더 있 습니다 . . 
 BbsMapper 는 단순히 xml 파일 과 매핑 을 위해서 사용 하 는 것 인가요 ? ? 아니 면 Dao 의 인터페이스 로 도 사용 되 는 건가요 ? ? 
 만약 , Dao 를 클 래스 로 사용 하 지 않 고 , Dao 에 대한 인터페이스 를 따로 두 고 , Dao 인터페이스 를 구현 한 클래스 를 사용 하 려면 BbsMapper 와 별도 로 Dao 에 대한 인터페이스 를 따로 구현 해야 하 나요 ? ?? 
 질문 이 너무 두서 가 없 었 는데 . . 답변 부탁드려요 ! ! 감사 합니다 ! 
 샤쿠 syaku at 2015 . 06 . 14 22 : 34 신고 
 네 맞 습니다 . 비지니스 로 직이 있 는 작업 을 서비스 계층 으로 지정 하 시 면 됩니다 . 
 BbsMapper 은 오직 myBatis 를 위한 인터페이스 입니다 . 
 BbsDao 는 Repository 계층 에서 확장 성 을 위한 인터페이스 입니다 . 
 여기 서 확장 성 이 라 하 면 . . myBatis 가 아닌 하이 비 네이트 나 jdbc 템플 릿 으로 사용 할 수 있 게 하 는 것 을 의미 합니다 . 
 마지막 으로 꼭 Dao 가 필요 한 것 은 아닙니다 . BbsMapper 만 으로 도 충분히 서비스 에서 di 해서 사용 할 수 있 습니다 . 
 스프링 초보 at 2015 . 06 . 17 01 : 18 
 윗 답변 갑사 드립니다 . 
 죄송 한데 한 가지 질문 더 드려도 될까요 ? ? 
 댓글 들 중 에 맨 위 에서 4 번 째 쯤 에 답변 하 신 내용 중 에 , 
 [ service 계층 은 dao 의 역활 을 좀 더 확장 하 여 비지니스 로직 을 담당 하 는 계층 입니다 . .. 그런데 위 내용 상 비지니스 로 직이 라고 는 없 어 . . dao 패턴 에 서비스 계층 을 적용 한 것 입니다 . ] 
 라고 말씀 하 신 부분 이 있 는데요 , 
 제 가 만약 에 , Service 와 DAO , Mapper 를 따로 두 고 사용 을 한다면 , @ service 어 노테이션 을 Service 에 붙여 주 고 
 Mapper 에 만 @ Repository 어 노테이션 을 붙이 면 되 나요 ? ? 아니 면 DAO 에 도 @ Repository 를 붙여야 하 나요 ? ? 
 샤쿠 syaku at 2015 . 06 . 17 09 : 20 신고 
 . . TODO . . 
 위 처럼 하 시 면 됩니다 . 
 스프링 어려 웡 at 2015 . 06 . 21 21 : 06 
 안녕 하 세요 ! 사쿠 님 ! 
 자료 를 다 실행 시켜 보 고 성공 했 는데 
 혹시 테이블 을 2 개 넣 고 싶 으면 어떻게 하 는 걸까요 ? BbsVo 나 BbsMapper 들 을 2 개 씩 생성 해 줘야 하 나요 ? ? 
 샤쿠 syaku at 2015 . 06 . 22 11 : 24 신고 
 2 개 면 각각 의 VO 와 Mapper ( DAO 가 있 을 경우 생성 해야 함 ) 
 그렇 게 만들 어 진 것 들 은 이미 생성 해 놓 은 Service 에서 di 하 여 사용 하 면 됩니다 . 
 스프링 어려 웡 at 2015 . 06 . 23 22 : 20 
 안녕 하 세요 ! 샤쿠 님 ! 지난 답변 감사 합니다 ! 
 vo 와 mapper 을 2 개 씩 만들 고 ( bbsvo , bbsvo 3 이렇게 ) 실행 해 봤 는데 
 를 viewcontroller 에 넣 었 습니다 . 
 value 값 이 겹치 면 실행 이 되 지 않 고 처음 dispBbsList 에 if - else 문 을 써서 return 값 을 다르 게 출력 해 봤 지만 화면 이 나오 지 않 아서 문 의 드립니다 : ) 
 샤쿠 syaku at 2015 . 06 . 24 09 : 38 신고 
 소스 에 는 문제 가 없 어 보 입니다 . .. 
 / 3 경로 로 접속 하 면 info 로그 가 찍히 지 않 나요 ? ? 
 오류 를 확인 해 보 셔야 할 것 같 네요 ~ 
 배워 봅니다 at 2015 . 07 . 20 00 : 24 
 샤쿠 님 mybatis 오라클 연동 하 는 거 도 갈쳐 주 세요 ㅠ 
 샤쿠 syaku at 2015 . 07 . 20 09 : 31 신고 
 pom . xml 에 아래 와 같이 추가 합니다 . 
 그리고 datasource 설정 은 아래아 같이 ~ 
 스프링 at 2015 . 07 . 30 15 : 13 
 등록 일 은 왜 안 보이 는 건가요 ? ? 
 샤쿠 syaku at 2015 . 07 . 30 16 : 05 신고 
 급 했 는 지 . .. 등록 일 을 기록 하 지 않 았 네요 ~ 
 게시 글 등록 할 때 날짜 를 등록 해 주 시 면 될 것 같 네요 ~ 
 테이블 생성 할 때 날짜 를 date 타입 으로 하 시 는 게 좋 을 거 에요 ~ 
 ( 내용 에 는 캐릭터 로 되 어 있 음 ) 
 at 2016 . 03 . 16 20 : 33 
 샤쿠 syaku at 2016 . 03 . 17 14 : 41 신고 
 bbsDAO 에 insert 에 넣 으시 면 됩니다 . .. 저 당시 에 는 서비스 를 따로 만들 지 않 았 네요 ~ 
 at 2016 . 03 . 21 11 : 28 
 샤쿠 syaku at 2016 . 03 . 21 11 : 33 신고 
 네 bbsDAO . java 클래스 에 보 면 insert 메 서드 가 있 을 거 에요 
 bbsVO 에 넣 으시 면 됩니다 . . 데이터 타입 을 문자열 로 해놨 네요 ~ Date 타입 으로 바꾸 셔도 되 고 new Date 를 문자열 포맷 으로 얻 어 넣 으시 면 됩니다 . 
 at 2016 . 03 . 21 11 : 47 
 샤쿠 syaku at 2016 . 03 . 21 13 : 11 신고 
 위 에 댓글 처럼 reg _ datetime 이 날짜 형식 이 아니 라 문자열 입니다 . 
 at 2016 . 03 . 21 14 : 53 
 샤쿠 syaku at 2016 . 03 . 21 14 : 54 신고 
 변수 를 먼저 삽입 해 주 시 고 인서 트 를 해야 되 겠 지요 ~ 
 프로그램 은 위 에서 부 터 아래 로 순차 적 으로 처리 되 니까 용 ~ 
 at 2016 . 03 . 21 15 : 03 
 at 2016 . 03 . 23 10 : 52 
 공부 하 고 싶 어 at 2016 . 07 . 13 09 : 48 
 parse 부분 에 빨간 줄 이 떠서 에러 를 확인 해 보 니 
 근데 바꿔도 다른 에러 가 더 발생 해 가지 구 . . 
 도대체 뭐 가 문제 인지 못 찾 고 있 습니다 . 
 샤쿠 syaku at 2016 . 07 . 13 09 : 56 신고 
 죄송 합니다 . .. 제 가 오류 를 발생 시켰 네요 ~ 
 parse 가 아니 라 format 입니다 . 
 공부 하 고 싶 어 at 2016 . 07 . 13 10 : 02 
 빠른 답변 정말 감사 드립니다 ^^ 
 mysql 에서 
 reg _ datetime 의 타입 을 date 로 변경 한 상태 인데 
 지금 알려 주 신 코드 는 
 mysql 에서 데이터 타입 이 캐릭터 일 때 사용 하 는 코드 인 거 맞 죠 ? 
 저 처럼 mysql 에서 데이터 타입 을 date 로 바꿔 준 상태 라면 
 어떤 코딩 만 해 주 면 되 는 건가요 ? 
 샤쿠 syaku at 2016 . 07 . 13 10 : 05 신고 
 아니 면 mybatis xml 맵 퍼 에서 디비 함수 를 사용 해두 되 구요 ~ 
 아 . .. 며칠 째 인지 . . ㅠㅠ at 2015 . 08 . 26 23 : 14 
 구글링 으로 별 검색 을 다 하 고 했 는대도 . . 에러 를 못 잡 겠 습니다 . . 하 . . 어떻 게 해야 될까요 ㅠㅜ 
 ### The error may exist in file [ E : \ FoodTruck _ Server \ workspace \. metadata \. plugins \ org . eclipse . wst . server . core \ tmp 0 \ wtpwebapps \ TestServer \ WEB - INF \ classes \ com \ company \ bbs \ dao \ BbsMapper . xml ] 
 ### The error may involve com . company . bbs . dao . BbsMapper . select 
 java . sql . SQLException : Access denied for user ' spring '@' localhost ' ( using password : YES ) 
 at org . mybatis . spring . transaction . SpringManagedTransaction . openConnection ( SpringManagedTransaction . java : 81 ) 
 at org . mybatis . spring . transaction . SpringManagedTransaction . getConnection ( SpringManagedTransaction . java : 67 ) 
 at org . apache . ibatis . executor . SimpleExecutor . prepareStatement ( SimpleExecutor . java : 72 ) 
 at com . sun . proxy . $ Proxy 15 . select ( Unknown Source ) 
 at com . company . bbs . dao . BbsDao . getSelect ( BbsDao . java : 14 ) 
 at com . company . bbs . ViewController . dispBbsList ( ViewController . java : 34 ) 
 샤쿠 syaku at 2015 . 08 . 26 23 : 21 신고 
 디비 암호 가 틀린 것 같 은데 여 
 스프링 초보자 at 2015 . 11 . 17 00 : 56 
 에러 가 밑 에 처럼 나 는데 혹시 왜 그런지 아세요 ? db 는 오라클 쓰 고 있 습니다 . 
 로 수정 해 줬 구요 물론 username 랑 password 써 줬 어요 
 그리고 context - datasource . xml 은 밑 에 처럼 해 줬 어요 
 org . springframework . beans . factory . B e a nDefinitionStoreException : Invalid bean definition with name ' dataSourceSpied ' defined in class path resource [ config / spring / context / context - datasource . xml ] : Could not resolve placeholder ' jdbc . driver ' 
 샤쿠 syaku at 2015 . 11 . 17 10 : 06 신고 
 설정 정보 ( 프로 퍼티 ) 에 는 
 이렇게 하 셨 다면 
 jdbc . 을 삭제 해 주 셔야 합니다 . 
 로그 에 보 면 Could not resolve placeholder ' jdbc . driver ' 오류 가 있 죠 찾 지 못하 는 거 겠 죠 ~ 
 참고 : http : / / www . mkyong . com / spring / spring - p r o p ertyplaceholderconfigurer - example / 
 뽕 따 이 at 2015 . 11 . 25 17 : 16 
 샤쿠 님 포스팅 잘 보 면 따라 하 고 있 는데 . .. 막혀서 토 나오 겠 네여 ㅠ 
 HTTP Status 404 - / bbs / 
 message / bbs / 
 이런 오류 가 나 는데 . .. 왜 그런지 알 수 있 을까요 ? Markers 에서 보 면 
 Referenced bean ' dataSource ' not found 	 context - mybatis . xml 	 / syaku - bbs / src / main / resources / config / spring / context 	 line 10 	 Spring Beans Problem 
 요래 된다고 나오 는데 . . ㅠ 
 샤쿠 syaku at 2015 . 11 . 26 09 : 14 신고 
 오류 가 dataSource 를 찾 지 못하 는 것 같 아요 ~ 
 dataSource 가 설정 되 어 있 는 스프링 설정 파일 을 확인 해 보 세요 ~ 
 만년 초보 at 2015 . 12 . 28 15 : 48 
 안녕 하 세요 쥔장 님 강의 잘 보 고 있 습니다 . . 
 근데 죄송 한데 . . 
 오라클 버전 BBS 테이블 생성 하 는 거 랑 
 위 에 BbsMapper . xml 오라클 SQL 버전 으로 도 바꿔서 올려 주심 안 될까요 . . 
 IDX 가 컨트롤러 에 막 정의 되 있 고 왔 다 갔 다 해서 이해 가 잘 안 갑니다 부탁 드립니다 . 
 replay at 2016 . 01 . 23 04 : 34 
 감사 합니다 감사 합니다 처음 으로 게시판 성공 해 보 네요 ㅠㅠ 
 아무쪼록 좋 은 공부 합니다 남 은 파트 도 잘 부탁 드립니다 . 
 lop at 2016 . 02 . 28 23 : 49 
 유용 한 소스 네요 ~ 덕분 에 공부 를 잘 하 고 있 습니다 ! 감사 합니다 
 니콜 at 2017 . 07 . 11 17 : 56 
 지금 해당 소스 를 보 면서 진행 하 고 있 습니다 . . 
 혹시 현 구조 에서 DB 를 2 개 를 사용 한다는 가정 하 에 아래 와 같이 작업 했 는데 . .. 
 같 은 DB 정보 만 가져오 는 는 현상 이 자꾸 발생 하 는데 혹시 각각 가지 고 오 려면 어떤 작업 을 해야 하 는지 도움 부탁 드립니다 . 
 1 . context - database . xml 내 신규 DB datasource 추가 
 2 . context - mybatis . xml 내 
 sqlSessionFactory 2 , 
 sqlSessionMapperScan 2 추가 
 3 . Bbs 2 Mapper . xml 파일 추가 
 4 . BbsDao . java , Bbs 2 Dao . java 파일 에 
 어 노테이션 추가 
 @ Repository ( " bbsDao ") 
 dao 부분 만 
 @ Repository ( " bbs 2 Dao ") 
 샤쿠 syaku at 2017 . 07 . 20 16 : 17 신고 
 DataSource 새로 하나 만들 고 id 를 dataSource 2 라고 합니다 . 
 그리고 sqlSessionFactory 를 새로 하나 만들 어 이것 도 2 라고 합니다 . 그리고 맵 퍼 를 스캔 할 때 와이드 카드 를 좀 다르 게 해서 올바르 게 로드 될 수 있 게 합니다 . 
 < value > classpath *: mapper / * Mapper 2 . oracle . xml </ value > 
 </ proper . .. 
 맵 퍼 를 스캔 할 때 기존 에 있 는 다른 세션 팩토리 가 해당 팹 퍼 를 읽 지 못하 게 와일드카드 를 잘 분리 해 주 세요 
 그리고 sqlsession 2 로 추가 하 고 
 마지막 으로 MapperScan 용 어 노테이션 을 하나 만듭니다 . 
 니콜 at 2017 . 07 . 20 18 : 02 
 답글 너무 감사 드립니다 . 
 위 방식 대로 진행 했 습니다 . 서버 올라가 는 건 문제 없 는데 프로그램 실행 하 면 
 첫 번 째 DB 조회 성공 후 
 두 번 째 DB 접근 할 때 에러 가 발생 합니다 . 조금 만 디버깅 도움 부탁 드립니다 . 
 순서 1 ) BbsDao 2 . java 추가 
 순서 2 ) datasource 2 추가 
 순서 3 ) sqlSessionFactory 2 추가 
 순서 4 ) MapperScannerConfigure 추가 
 < value > classpath : sql / * Mapper . xml </ value > 
 < value > classpath : sql / BbsMapper . oracle . xml </ value > 
 샤쿠 syaku at 2017 . 07 . 20 18 : 08 신고 
 맵 퍼 에 해당 하 는 dao interface 를 찾 지 못한 는 오류 입니다 . 
 annotationClass 에 는 @ MapperScan 같 은 어 노테이션 클래스 를 설정 해야 합니다 . 그리고 dao 클래스 에 위 어 노테이션 을 삽입 해야 합니다 . 
 니콜 at 2017 . 07 . 21 09 : 29 
 샤쿠 님 이 정의 해 주 신 부분 도 확인 해 보 고 있 습니다 . 
 아래 twomapperscan 구문 을 
 아래 출처 처럼 동일 하 게 사용 해 봤 지만 작동 은 안 되 더라구요 . . 
 혹시 도움 더 부탁 드리 겠 습니다 . 
 적용 1 ) xml 내 twomapperscan 설정 
 적용 2 ) 아래 출처 와 같이 mapper 클래스 생성 
 @ Documented @ Component public 
 출처 : http : / / syaku . tistory . com / 303 [ Syaku 샤쿠 ] 
 작업 3 ) BbsDao 2 . java 에 적용 
 @ TwoMapperScan 
 샤쿠 syaku at 2017 . 07 . 21 09 : 54 신고 
 이전 댓글 에 보 니 
 리파 지토리 어 노테이션 으로 스캔 을 하 고 있 습니다 . 
 그렇 다면 BbsDao 2 에서 저 어 노테이션 을 사용 해서 는 안 됩니다 . 
 / / 그리고 value 는 자동 으로 첫 글자 가 소문자 로 만들 어 지 기 때문 에 자동 으로 bbsDao 2 가 만 집니다 . 그래서 value 는 사용 하 지 않 아도 됩니다 . 
 sqlSession 에서 스캔 된 dao ( 인턴 페이스 멥퍼 ) 는 
 sqlSession 2 에서 다시 스캔 될 수 없 습니다 . 
 둘 을 잘 분리 해 줘야 합니다 . 
 맵 퍼 스캔 은 해당 패키지 경로 하위 에 @ annotation 적용 된 클래스 만 로드 됩니다 . 
 그리고 인터페이스 맵 퍼와 xml 맵 퍼 가 서로 바인딩 ( 자바 리플렉 션 에 의해 ) 됩니다 . 
 니콜 at 2017 . 07 . 21 10 : 58 
 샤쿠 님 감사 합니다 . ^^ 해결 했 습니다 . 
 multi datasource 를 구현 하 기 위해 2 가지 방식 이 있 는데 
 샤쿠 님 이 보여 주 신 거 mapperScan 방식 그리고 sqlsessionTemplete 방식 이 있 다는 거 알 게 되 었 습니다 . 
 혹시 다른 분 들 도 저 처럼 하 실 분 들 은 관련 자료 는 아래 참고 하 시 고 
 소스 에 적용 해 보 세요 
 적용 전 twoMapper 어 노테이션 참고 자료 꼭 보 시 고요 . . 
 참고 1 ) mapper 인터페이스 에 선언 된 어 노테이션 설명 
 http : / / blog . naver . com / cracker 542 / 40159657935 
 참고 2 ) mapper 인터페이스 를 dao 에 어떻게 적용 하 는지 샘플 
 http : / / devyongsik . tistory . com / 357 
 http : / / mansookim . tistory . com / 96 
 이제 부터 적용 한 방법 입니다 . 위 댓글 부터 보 시 면 이해 되 실 겁니다 . 
 최종 작업 1 ) TwomapperScan . java 생성 
 작업 2 ) datasource 2 . xml 접근 할 BbsDao 2 . java 에 @ TwoMapperScan 추가 
 http : / / blog . naver . com / eungsik 80 / 221056405727 
 샤쿠 syaku at 2017 . 07 . 21 12 : 11 신고 
 수고 하 셧 네요 : ) 
 ◀ PREV 1 · · · 9 9100101102103104105106107 · · · 313 NEXT ▶