반응형

# Spring WEB MVC_01버전_04~05 DataBase 연결

  • 스프링 실행 시 아래 부분들이 먼저 실행된다.
  1. ContextLoaderListener => root-context.xml 참조
  2. DispatchServlet => servlet-context.xml 참조
  • 일반적으로 데이터 베이스 설정은 root-context.xml에서 진행.
  • config.xml / db.properties 파일의 경우 거의 수정하는일이 없다. 외부에서 접근이 불가능 하도록 WEB-INF > mybatis 폴더 생성하여 해당 폴더로 이동.

## 데이터베이스 연결

  • JDBC를 이용해서 MySQL을 연결하기 위해서 MySQL Driver API 필요.
  • myBatis를 JDBC와 연결하기 위한 API가 필요.
  • Spring에서 MyBatis를 연결하기 위한 API 필요.
  • 아래와 같이 Spring DB API 확인하여 pom.xml에 dependency 설정.

1. MySQL Connector API

  • mvnRepository 사이트에서 mysql-connector-java 알맞은 버전 클릭 후 dependency 복사하여 pom.xml에 삽입.
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.31</version>
</dependency>

 2. MyBatis API

  • 마찬가지로 알맞은 버전 클릭 후 dependency 복사하여 pom.xml에 삽입.
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.5</version>
</dependency>

3. MyBatis-Spring API

  • 마찬가지로 알맞은 버전 클릭 후 dependency 복사하여 pom.xml에 삽입.
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>

4. Spring JDBC API

  • 마찬가지로 알맞은 버전 클릭 후 dependency 복사하여 pom.xml에 삽입.
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>3.1.1.RELEASE</version>
</dependency>

## root-context.xml 설정

  • 스프링에서 클래스 설정 시 <beans> 태그를 사용.
1. 자바 객체 생성
A a = new A();

2. xml의 경우 bean 사용하여 객체 생성
<bean id='a' class='A'/>

=> 자바의 리플렉션 기법.
(클래스 이름(A)만 알면 객체를 내부적으로 생성해낼수 있는 방법)

1. db.properties 파일 연결

Libraries > Maven Dependencies > spring-beans-3.1.1.RELEASE.jar > org.springframework.beans.factory.config

해당 경로로 가서 PropertyPlaceholderConfigurer.class 찾기.

해당 class 파일을 찾은 후 우 클릭 > Copy Qualified Name > db.properties에 생성한 bean class에 넣기.
( Copy Qualified Name => 패키지 이름 포함하여 파일 이름 복사. )
  • 일반적으로 bean의 id 이름은 class 이름을 그대로 따른다.(id 이름의 첫 글자는 소문자로 처리)
  • bean 내부 property 태그는bean의 class가 가지고 있는 Locations에 setter 메서드를 호출하여 property value를 설정해주면,  PropertyPlaceholderConfigurer가 파일을 리딩해서 db.properties에 있는 정보를 내부적으로 갖고있게 된다.
<!-- db.properties 파일 연결 -->
<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations" value="/WEB-INF/mybatis/db.properties"/>
</bean>

2. JDBC 연결(DataSource)

  • db.properties에 있는 정보를 설정 (추후 db.properties 제거 예정)
<!-- JDBC 연결(DataSource) -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
  <property name="driverClass" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
</bean>

3. MyBatis SqlSessionFactory

  • property 태그에서 ref의 경우 '참조'
  • qlSessionFactoryBean이 JDBC를 이용해서 JDBC 연결(dataSource)하고, configLocation 파일과 mapperLocation 파일을 연결.
  • 그래서 기존 config.xml 파일에서 typeAlias만 사용.
<!-- MyBatis SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource"  ref="dataSource"/>
  <property name="configLocation" value="/WEB-INF/mybatis/config.xml"/>
  <property name="mapperLocations" value="classpath:kr/bit/mybatis/*.xml"/>
</bean>

### config.xml 정리(typeAlias만 존재하도록 변경)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<typeAliases><!-- 별칭 -->
	    <typeAlias type="kr.bit.model.MemberVO" alias="memberVO"/>
	</typeAliases>
</configuration>

## 코드 어시스턴트 기능 사용 설정 방법

  • 이클립스 > 상단 Window > Preferences > Editors 검색 > File Associations 에서 File Types 선택(예)xml 파일) 후 하단 Associated editors에서 XML editor 선택 후 Default 설정 > Apply and close.
  • 열러있는 xml 파일을 닫고 새로 오픈 후 Source 탭에서 name 등의 입력 부분 클릭 후 Ctrl + Space 클릭 시 코드 어시스턴트 기능을 사용할 수 있다.
반응형

+ Recent posts