1. 데이터베이스에 테이블 등 설정을 우선 한다.
2. pom.xml에 파일에 필요한 의존성을 추가한다. 추가 후 프로젝트에 마우스 오른쪽 키를 클릭하여 Maven -> Update Project 를 실행한다.
<!-- 오라클 JDBC 드라이버를 가져오기 위해 리포지토리를 추가합니다. -->
<!-- properties 밑에 -->
<repositories>
<repository>
<id>oracle</id>
<url>http://maven.jahia.org/maven2</url>
</repository>
</repositories>
<!-- 스프링에서 JDBC 를 사용하기 위한 라이브러리 입니다. -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- 컨넥션 풀을 위한 라이브러리 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- 오라클 JDBC 드라이버 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.2</version>
</dependency>
<!-- MyBatis 라이브러리 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
<!-- 마이바티스와 스프링 연동을 위한 라이브러리 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
필요한 라이브러리가 있을 경우 http://search.maven.org 등에 들어가서 검색을 해서 찾아서 넣으면 됩니다.
3. root-context.xml파일에 데이터베이스 연결 설정, MyBatis 설정, Transaction을 추가한다. 스프링 루트 컨텍스트
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- 데이터베이스 연결 -->
<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:orcl" />
<property name="username" value="system"/>
<property name="password" value="oracle"/>
</bean>
<mybatis-spring:scan base-package="com.dayoon.hello.*.mapper"/>
<!-- SqlSession -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:sql/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:sql/sqlmap/*.xml" />
</bean>
<!-- SqlSession -->
<!-- 요건 dao용꺼
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
</bean> -->
<!-- 지정된 베이스 패키지에서 DAO(Mapper) 를 검색하여 등록합니다. -->
<!-- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dayoon.hello.*.mapper" />
</bean> -->
<!-- 트랜잭션 매니저 bean 을 등록합니다. -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 아노테이션 기반의 트랜잭션을 사용합니다. -->
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
위에서 beans, tx, jdbc의 네임스페이스가 사용되었다. 파일 상단에 xmlns로 지정되는 부분이다.
파일 내부에서 사용되는 태그의 네임스페이스가 지정되어야 한다. eclipse의 에디터로 설정파일을 열면 하단의 네임스페이스 탭에서 필요한 네임스페이스를 선택하여 쉽게 추가할 수 있다.
4. servlet-context.xml을 설정
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan base-package="com.dayoon.hello" />
</beans:beans>
위에서 두개의 컨텍스트를 설정하였다.
root-context.xml 과 servlet-context.xml 파일에서 보면 각각 <bean/> 태그와 <beans:beans/> 태그가 사용되고 있다는 것을 알 수 있습니다. 둘의 기능적 차이는 없습니다. 완전히 같은 것 입니다. 그런데 표기 방법이 달라지는 것은 디폴트 네임스페이스 때문입니다.
최상위 요소 <beans 바로 뒤에 나오는 xmlns= 로 바로 시작하는 네임스페이스가 디폴트 네임 스페이스 입니다. 디폴트 이외에는 xmlns:beans= 처럼 네임스페이스를 적어야 합니다. 디폴트 네임스페이스는 본문에 태그를 적을때 네임스페이스를 빼고 적어도 됩니다.
<beans xmlns="http://www.springframework.org/schema/beans"
....... />
<!-- 기본 네임스페이스가 beans 이므로 바로 쓸 수 있습니다. -->
<bean ....> </bean>
</beans>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
.... />
<!-- 기본 네임스페이스가 mvc 이므로 bean 앞에 네임스페이스를 적어야 합니다. -->
<beans:bean ...> </beans:bean>
</beans:beans>
5. 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"/>
<setting name="jdbcTypeForNull" value="NULL" />
<setting name="callSettersOnNulls" value="true" />
</settings>
<typeAliases>
<typeAlias alias="Board" type="com.dayoon.hello.study.model.Board"/>
</typeAliases>
</configuration>
그 후 데이터를 service에서 호출하여 가공 후 사용한다.
Reference: https://offbyone.tistory.com/18 [쉬고 싶은 개발자]
'Study > Spring' 카테고리의 다른 글
mybatis query log (변수 매핑된 쿼리 로그 출력) (0) | 2020.10.13 |
---|---|
Eclipse maven repository 경로 설정(settings.xml) (0) | 2020.10.07 |
Context파일 위치 변경 (0) | 2020.10.05 |
[Spring] Dao와 Mapper의 차이점 (0) | 2020.05.07 |
[MySql] MySQL DateTime 포맷과 문자열 날짜값의 비교, 그리고 date_format() 날짜 포매팅 (0) | 2020.03.23 |
댓글