00. 개요
- MemberController로 부터 사용자로부터 id와 pwd 를 넘겨 받으면서 서비스에게 id, pwd가 맞으면 member 객체를 달라고 요청
- service에는 본인이 직접 처리하지 않고, dao에게 session과 id를 넘겨주면서 DB에서 조회할 수 있도록 하자.
- 즉, mybatis와 연동해서 DB에서 데이터를 가져오는 실습
01. pom.xml 수정
1) pom.xml에 <DB 관련 라이브러리> 추가
2) Maven Repository에서 "spring-jdbc" 검색
https://mvnrepository.com/artifact/org.springframework/spring-jdbc/5.3.14
5.3.14 버전을 pom.xml에 추가
버전 정보는 위에 선언해 놓은 것을 활용할 수 있도록 ${org.springframework-version} 으로 바꿈
3) "MyBatis Spring" 검색
https://mvnrepository.com/artifact/org.mybatis/mybatis-spring/2.0.6
2.0.6 버전을 추가
4) "dbcp2" 검색
https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2/2.9.0
커넥션 풀을 위한 라이브러리 2.9.0 버전을 추가
<!-- DB -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<!-- spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<!-- mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- for Connection pool dbcp2 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.9.0</version>
</dependency>
이 부분 추가하였음
02. mybatis-context.xml 생성
- mybatis 연동에 사용할 bean들을 모아놓을 mybatis-context 파일 생성하고, root-context에서 이 파일을 참조할 수 있도록 import할 것이다.
03. root-context.xml
<import resource="mybatis-context.xml"/> 작성
- 기존에는 sql 관련 객체들을 직접 만들어서 getSession()으로 호출했다면,
bean으로 등록해놓고 ApplicationContext로부터 주입받아서 사용할 것이기 때문에, mybatis-context.xml에 bean으로 등록하도록 하자.
- 즉, 기존에 mybatis 실습때 SqlSessionTemplate 작성했던 부분을 bean으로 등록한다.
04. mybatis-context.xml 에 bean 등록
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close"
p:driverClassName="oracle.jdbc.driver.OracleDriver"
p:url="jdbc:oracle:thin:@localhost:1521:xe"
p:username="WEB"
p:password="WEB"
/>
<bean id="mybatisConfig" class="org.apache.ibatis.session.Configuration"
p:jdbcTypeForNull="NULL"
/>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
p:configuration-ref="mybatisConfig"
p:mapperLocations="classpath:mappers/**/*.xml"
p:typeAliasesPackage="com.kh.mvc.*.model.vo"
p:dataSource-ref="dataSource"
/>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"
c:sqlSessionFactory-ref="sqlSessionFactory"
/>
<dataSource> : 데이터베이스에 연결할 때 Connection Pool을 사용할 수 있게 해주는 객체이다. 여기에서 커넥션을 관리해준다. 이 때, dbcp2 아파치에서 구현해준 dataSource를 사용한다.
<sqlSessionFactory> 등록
- ** : 현재 경로 포함해서 상위 지정한 경로의 모든 하위 경로를 의미
- * : 현재 경로를 의미
'Study > Setting & Tip' 카테고리의 다른 글
DAY 142. Log4j (0) | 2022.01.07 |
---|---|
DAY 134. Maven 설치 (0) | 2021.12.30 |
DAY 133. STS(Spring Tool Suite 3) 초기 환경 설정 (0) | 2021.12.29 |
DAY 110. 이클립스에서 JSP 라이브러리 추가한 탬플릿 만들기 (0) | 2021.12.06 |
DAY 108. JSP Apache Taglibs 이클립스에 추가하기 (0) | 2021.12.04 |