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 파일에서 아래와 같은 코드를 붙여 넣습니다.
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에서 설정한 경로 위치에 만들어줍니다.
쿼리 문의 결과를 리턴할 수 있는 맵퍼 파일을 만듭니다. 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)으로 리턴됩니다. 한 가지 주의할 점으로 쿼리문에 세미콜론을 붙이면 오류가 납니다.
[Spring] 스프링 트랜잭션의 정의와 설정하기 (0) | 2020.10.22 |
---|---|
[Spring] 스프링 프로젝트의 기본적인 작동 순서 (0) | 2020.09.30 |
[Spring] 스프링에서 Gson을 이용하여 ajax 응답하기 (0) | 2020.09.27 |
[Spring] 스프링 STS4 설치하기 (0) | 2020.09.27 |
[Spring] 스프링 이클립스와 톰캣 연동하기 (0) | 2020.09.27 |