[MVC프로젝트] #2 MyBatis 연동하기 (ORACLE, MS-SQL)

2019. 9. 21. 19:18Go 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

 

Spring3 Maven을 이용하여 pom.xml에 oracle,mysql,mssql jdbc 라이브러리 등록하기

Spring + ibatis/mybatis 연동에 필요한 JDBC 라이브러리 파일들을 각 DBMS별로 pom.xml에 등록을 위한 포스팅 해보도록 하겠습니다. 연동하고자 하는 JDBC 라이브러리는 MySQL, Oracle, MSSQL JDBC를 메이븐을 통..

hellogk.tistory.com

-> 내 기준 : MS-SQL JDBC 4.2 버전으로 설치함

 

STEP 1 . MS-SQL JDBC 4.2 설치하기

- https://www.microsoft.com/ko-kr/download/details.aspx?id=54671

 

Microsoft JDBC Driver 4.2 for SQL Server

Java 플랫폼, Enterprise Edition에서 사용 가능한 표준 JDBC API(응용 프로그램 인터페이스)를 통해 데이터베이스 연결을 제공하는 유형 4 JDBC 드라이버인 SQL Server용 Microsoft JDBC Driver 4.2를 다운로드하세요.

www.microsoft.com

 

STEP 2 . maven 파일 설치하기

- http://maven.apache.org/download.cgi

 

Maven – Download Apache Maven

Downloading Apache Maven 3.6.2 Apache Maven 3.6.2 is the latest release and recommended version for all users. The currently selected download mirror is http://mirror.navercorp.com/apache/. If you encounter a problem with this mirror, please select another

maven.apache.org

-> 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 . 포트 설정

- https://m.blog.naver.com/PostView.nhn?blogId=platinasnow&logNo=220040778342&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

[MSSQL] 호스트 localhost, 포트 1433에 대한 TCP/IP 연결에 실패했습니다.

오랜만에 MSSQL을 재설치 했더니 아래와 같은 오류가 뜹니다.설치 할 때마다 검색하는거 같아서 아예 ...

blog.naver.com

 

 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와 동일