금융에 대한 모든 것

pom.xml 의존성 설정

repository 설정

<!--  오라클 드라이버 -->
<repositories>
        <repository>
                <id>codelds</id>
                https://code.lds.org/nexus/content/groups/main-repo
        </repository>
</repositories>

오라클 드라이버 라이브러리 파일을 받을 repositoty를 설정하는 코드로, 맨 위에 있는 properties 태그 아래에 붙여 넣습니다.

 

데이터 소스, 마이바티스 라이브러리

<!-- 데이터소스 관련 라이브러리 -->
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
</dependency>
<!-- 마이바티스 라이브러리-->
<dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

데이터베이스 연결에 필요한 데이터 소스 라이브러리와 마이바티스 라이브러리를 다운로드합니다.

 

오라클 드라이버 라이브러리

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
</dependency>

 오라클 데이터베이스를 연결하기 위해 오라클 드라이버를 다운로드합니다.

 

root-context.xml 파일 설정하기

 root-context 파일에서 아래와 같은 코드를 붙여 넣습니다.

 

root-context.xml

<!-- 아파치 DBCP 설정 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
       <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
       <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
       <property name="username" value="Id"/>
       <property name="password" value="Password"/>
</bean>

데이터 소스 클래스 이용하여 오라클과 연동하는 코드입니다. 여기서 주의해야 되는 것은 url, username, password 속성입니다. url 속성 값에서 xe는 SID를 의미하는데 이 값이 틀리면 데이터베이스가 연결되지 않습니다. 그리고 username, password의 속성 값은 데이터베이스에 접속한 계정의 아이디와 비밀번호를 입력합니다.

 

<!-- SqlSessionFactory 객체 주입 -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                <property name="dataSource" ref="dataSource" />
                <property name="configLocation" value="classpath:/mybatis-config.xml"></property>
                <property name="mapperLocations" value="classpath:mappers/*Mapper.xml"></property>
        </bean>

 configLocation은 마이바티스 설정 파일의 경로를, mapperLocations 맵퍼 파일의 경로를 의미합니다. 그리고 '*Mapper.xml'는 파일명이 'Mapper'로 끝나는 파일을 맵퍼 파일로 취급한다는 의미입니다. 또한 'classpath:'는 루트 디렉터리부터 resources까지의 경로를 나타내는데 이것을 인식하지 못하면 프로젝트의 properties - java Build Path - source 탭 -browser를 눌러 경로 설정을 해주어야 합니다.

 

<!-- Mapper 어노테이션을 탐색할 경로 지정-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.example.spring01.**.service.impl" />
</bean>

 @Mapper를 탐색하여 데이터베이스와 맵퍼를 연결하는 설정입니다. 여기서 basePackage의 속성 값은 @Mapper를 탐색할 경로를 의미하고  '**'는 모든 폴더를 의미합니다. 

 

마이바티스 설정 파일 만들기

 마이바티스와 관련된 여러 가지를 설정할 수 있는 Mybatis-Config파일을 만듭니다. resources 안에 만들어줍니다.

 

Mybatis-Config.xml

<?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>
        <settings> 
        <!-- 오라클 필드 속성이 READ_COUNT 처럼 언더 스코어가 있을 때 VO 의 readCount 처럼 카멜 케이스로 변환 되게 합니다. --> 
                <setting name="mapUnderscoreToCamelCase" value="true"/> 
        </settings>
        <typeAliases>
        </typeAliases>
</configuration>

위와 같이 Mybatis-Config 파일을 root-context에서 설정한 경로 위치에 만들어줍니다.

 

마이바티스 Mapper 파일 만들기

 쿼리 문의 결과를 리턴할 수 있는 맵퍼 파일을 만듭니다.  webapp/resources에 mappers 폴더를 만들고 HomeMapper.xml를 만들어줍니다.

 

HomeMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- 다른 mapper와 중복되지 않도록 네임스페이스 기재 -->
<mapper namespace="com.example.portpolio.main.service.impl.MainMapper">
        <select id="selectLoginList" resultType="map">
                SELECT USER_ID, USER_PASSWORD
                    FROM FIRST
        </select>
</mapper>

먼저 mapper 태그에서 namespace 속성 값을 @Mapper를 붙인 맵퍼 인터페이스의 경로를 입력합니다. 그리고 select 태그의 id를 조회 결과를 리턴할 메서드명을 입력합니다. 정확하게 입력했다면 select 태그 안에 실행할 쿼리문을 붙여 넣기 합니다. 이 쿼리 문의 결과는 resultType의 map(HashMap)으로 리턴됩니다. 한 가지 주의할 점으로 쿼리문에 세미콜론을 붙이면 오류가 납니다.

반응형