본문 바로가기
Spring

Spring + Mssql + Mybatis 연동

by 하르싼 2019. 12. 3.
반응형
 개발환경
Os  Windows 10
 IDE  STS 3.9.6
 Jdk  1.8.0_172
 Spring 5.2.1.RELEASE
 DB  MsSql

 

1. 프로젝트 생성 

 - Spring Legacy Project > Spring MVC project 생성 후 Java 버전을 1.8로 변경

 

 

 

 

2. Pom.xml 의존성추가

 - mybatis, mybatis-spring, spring-jdbc, mssql-jdbc, spring-test

 - https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc

 

		 		 		    org.mybatis 		    mybatis 		    3.4.6 		 		 		    org.mybatis 		    mybatis-spring 		    1.3.2 		 		 		    org.springframework 		    spring-jdbc 		    4.3.18.RELEASE 		 		 		 		    com.microsoft.sqlserver 		    mssql-jdbc 		    6.4.0.jre8 		    test 		 		             org.springframework             spring-test             ${org.springframework-version}           

3. JUnit Test 생성 후 실행

 - src/test/java 디렉토리에서 아래 화면처럼 JUnit Test Case 선택 후 java 파일생성

 - com.microsoft.sqlserver.jdbc.SQLServerDriver 클래스를 이용하여 테스트를 진행 

 

package com.spring.db;  import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement;  import org.junit.Test;  public class MssqlTest { 	 private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 	 private static final String URL = "jdbc:sqlserver://localhost:1433;databaseName=home_DB"; 	 private static final String USER = "hjlee"; //DB 사용자명 	 private static final String PW = "hjlee";   //DB 사용자 비밀번호  	 @Test 	 public void testConnection() throws Exception{  		 Class.forName(DRIVER); //com.microsoft.sqlserver.jdbc.SQLServerDriver JDBC Driver class 로딩  		 Connection con = DriverManager.getConnection(URL, USER, PW); // java.sql.Connection 객체생성  		 try{ 			 System.out.println(con); 			  			 System.out.println(con.isClosed()); // connection 닫힘 유무  			 Statement stmt = con.createStatement(); // Statement 객체생성  			 String sql = "select user_id,user_name,user_password from user_tb"; // 쿼리문  			 ResultSet rs = stmt.executeQuery(sql); //   			 while(rs.next()) { 				 System.out.println(rs.getString("user_id")+"///"+rs.getString("user_name")+"///"+rs.getString("user_password")); 			 }  			 con.close();  			 System.out.println(con.isClosed()); 		 }catch (Exception e) { 			 e.printStackTrace(); 		 }finally { 			 con.close(); 		 } 	} } 

 - 결과

 

 

 

4. Mybatis 설정

 - 프로젝트 구조

 

 

 - src/main/resource/properties   >>> jdbc.properties(DB접속정보) 파일추가

 

 

 - src/main/WEB-INF/spring >>> datasoruce-context.xml 추가

		  	 	                                    	                                                     	         	 		 	 	 		 	 	   

 - web.xml 수정

		   	 	 		contextConfigLocation 		/WEB-INF/spring/*-context.xml 	 	 	 	 		org.springframework.web.context.ContextLoaderListener 	  	 	 		appServlet 		org.springframework.web.servlet.DispatcherServlet 		 			contextConfigLocation 			/WEB-INF/spring/appServlet/servlet-context.xml 		 		1 	 		 	 		appServlet 		/ 	    

5. JUnit Test 생성 후 실행

 - src/test/java 디렉토리에서 아래 화면처럼 JUnit Test Case 선택 후 java 파일생성 후 실행

 ( SpringJUnit4ClassRunner requires JUnit 4.12 or higher 오류가 발생하면 POM.xml 에서 JUnit 버전을 4.12이상으로 올린후 다시 실행)

package com.spring.db;  import javax.inject.Inject;  import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/*.xml" }) public class MybatisTest { 	@Inject 	private SqlSessionFactory sqlFactory;  	@Test 	public void testFactory() { 		System.out.println(sqlFactory); 	}  	@Test 	public void testSession() throws Exception {  		try (SqlSession session = sqlFactory.openSession()) { 			System.out.println(session); 		} catch (Exception e) { 			e.printStackTrace(); 		} 	} }  

 - 결과

 

 

 

반응형

댓글