2019. 9. 21. 19:18ㆍGo to 코딩천재/Spring
* DBCP2 사용 기준
* 트랜잭션 관리 설정한 기준
ORACLE 기준
STEP 1 . webapp - [META-INF] - context.xml 생성 후, dataSource 객체 정의
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/xxx" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:orcl" username="xxx"
password="xxx" maxTotal="100" maxIdle="20" maxWaitMillis="10000"
removeAbandoned="true" removeAbandonedTimeout="60"
logAbandoned="true" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
STEP 2 . webapp - [WEB-INF] - mybatis - configuration.xml 생성
- configuration.xml : DTO 클래스 alias 추가할 파일
<?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>
<!-- 패키지에 alias 추가 -->
<typeAliases>
<typeAlias alias="xxxDto" type="com.xxx.xxx.model.xxxDto"/>
...
</typeAliases>
</configuration>
STEP 3 . webapp - [WEB-INF] - mybatis - mapper_xxxx.xml 생성
- mapper_xxxx.xml : SQL문 작성할 파일
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx.xxx.dao.xxxDao">
<select id="dao클래스의 메소드명" resultType="리턴타입">
select a, b, c
from table
</select>
</mapper>
STEP 4 . root-context.xml에서 sqlSession 객체 정의
- namespace 탭에서 context, tx 체크
<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- context.xml에서 정의한 dataSource객체 매핑 -->
<!-- jndiName value의 xxx부분은 context.xml의 resource name과 같아야 함 -->
<bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/xxx"></property>
</bean>
<!-- mybatis에서 사용할 DTO클래스 객체, SQL문 파일 매핑 -->
<bean id="sqlSessionFactoryBean"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation"
value="/WEB-INF/mybatis/configuration.xml"></property>
<property name="mapperLocations">
<list>
<value>/WEB-INF/mybatis/mapper_board1.xml</value>
</list>
</property>
</bean>
<!-- Mybatis에서 DB접근에 사용할 SqlSession객체 정의 -->
<bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg ref="sqlSessionFactoryBean"></constructor-arg>
</bean>
<!-- 트랜잭션을 관리하는 tx객체 정의 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
</beans>
MS-SQL 기준 방법
*MS-SQL 기준 연동 방법 참고 (4.0버전) : https://hellogk.tistory.com/92
-> 내 기준 : MS-SQL JDBC 4.2 버전으로 설치함
STEP 1 . MS-SQL JDBC 4.2 설치하기
- https://www.microsoft.com/ko-kr/download/details.aspx?id=54671
STEP 2 . maven 파일 설치하기
- http://maven.apache.org/download.cgi
-> maven설치 파일의 bin경로에, ①에서 받은 sqljdbc42.jar를 넣음
-> cmd를 켜고 maven 설치파일의 bin폴더 경로로 이동
-> ms-sql jdbc를 설치하기 위해, 다음 명령어를 입력
mvn install:install-file -Dfile=sqljdbc42.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc42 -Dversion=4.2
STEP 3 . ①에서 받은 폴더의 sqljdbc_auth.dll 파일을 C://Windows/System32에 넣기
STEP 4 . 포트 설정
STEP 5 . pom.xml 설정 추가
<!-- mssql -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc42</artifactId>
<version>4.2</version>
</dependency>
STEP 6 . webapp - [META-INF] - context.xml 생성 후, dataSource 객체 정의 (Window 인증 기준)
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/javaboard" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost:1433;DatabaseName=DB이름;integratedSecurity=true"
maxTotal="100" maxIdle="20" maxWaitMillis="10000"
removeAbandonedOnBorrow="true" removeAbandonedTimeout="60"
logAbandoned="true" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
STEP 7 . ORACLE 기준의 STEP 2~4와 동일