Spring + Mssql + Mybatis 연동

Spring + Mssql + Mybatis 연동

개발환경 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(); } } }

- 결과

from http://devhj.tistory.com/17 by ccl(A) rewrite - 2020-03-06 06:54:48

댓글

이 블로그의 인기 게시물

2020 LCK 롤챔스 Spring 경기 재개 및 일정

데이터 바인딩 추상화 - propertyEditor

Spring Web Form