마이바티스 연동 설정이 완료가 되었으면

DB와 통신이 잘되는지 테스트를 해보도록 한다.


DB(오라클 기준)에서 SELECT 1 FROM DUAL 질의하여 1이라는 값을 가져오는 테스트를 진행한다.


1.먼저 STS를 이용하여 스프링 프로젝트를 생성했을 당시 자동으로 생성된 servlet-contex.xml을 수정


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?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 http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://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.pkg.*" /> <-- 여기를 수정 -->
    
    
    
</beans:beans>
cs


본인의 패키지 구조에 맞게 끝부분을 * 로 설정하여 하위 모든 패키지가 톰켓 기동시 request mapping 될 수 있도록 설정한다. 

(난.. 기존에 있던 HomeController.java를 SampleController로 변경하여 사용하였다.)


자그럼 테스트를 위한 파일을 만들자.




 

 - 생성할 파일 목록 

 SampleController.java

 SampleDao.java

 SampleService.java


 SampleDao.xml


SampleController.java

SampleController.java


SampleController에서 보내질 jsp파일은 알아서 잘 만들도록 한다라고 하고싶지만 참고하도록 파일을 첨부하도록 했다.


sample.jsp


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.pkg.sample;
 
import java.text.DateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
 
/**
 * Handles requests for the application home page.
 */
@Controller
public class SampleController {
    
    private static final Logger logger = LoggerFactory.getLogger(SampleController.class);
    
    
    @Autowired
    private SampleService service;
    
    
    @RequestMapping(value = "/samplePage", method = {RequestMethod.GET, RequestMethod.POST})
    public String samplePage(Locale locale, Model model) {
        logger.info("#### Oracle Connection with mybatis test ");
        
        List<Map> tempData = this.service.oracleConnectionSample();
        
        model.addAttribute("tempDataList", tempData);
        return "sample";
    }
}
 
cs

SampleService.java를 생성하기 전 Service에서 공통으로 사용할 GeneralService.java를 생성하도록 하자 

GeneralService.java는 매번 Service마다 생성할 세션 객체(오라클 세션 객체) 구문을 공통적으로 사용하기 위해 생성한다.



 


 

GeneralService.java




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
package com.pkg.common;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
 
 
import org.apache.ibatis.session.SqlSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.stereotype.Service;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
 
 
/**
 * 서비스의 상위 클래스. 일반적이거나 공통적이 변수, 함수
 */
@Service
public class GeneralService {
 
    protected Logger logger = LoggerFactory.getLogger(this.getClass());
 
    public static final String DEFAULT_MESSAGE_OK = "정상적으로 처리하였습니다.";
    
    public static final String DEFAULT_MESSAGE_ERROR = "처리중 오류가 발생하였습니다!";
    
    public static final String DEFAULT_MESSAGE_ZERO_DATA = "조회된 데이터가 없습니다.";
 
    @Autowired
    protected SqlSession sqlSession;
    
 
    /**
     * 기본생성자
     */
    public GeneralService() {
    }
 
    /**
     * SQL세션객체 반환
     * @return  SQL세션객체
     */
    public SqlSession getSqlSession() {
        return this.sqlSession;
    }
}


SampleService.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.pkg.sample;
 
import java.util.List;
import java.util.Map;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
 
import com.pkg.common.GeneralService;
 
@Service
public class SampleService extends GeneralService {
 
    static Logger logger = LoggerFactory.getLogger(SampleService.class);
 
    public List<Map> oracleConnectionSample() {
        List<Map> authlist = sqlSession.getMapper(SampleDao.class).oracleConnectionSample();
        return authlist;
    }
}
cs

SampleDao.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.pkg.sample;
 
import java.util.List;
import java.util.Map;
 
/**
 * 
 * Sample Dao
 * @author hana
 */
public interface SampleDao {
 
    public List<Map> oracleConnectionSample();
 
}
 
cs

SampleDao.xml

1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0 //EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
<mapper namespace="com.pkg.sample.SampleDao">
    <select id="oracleConnectionSample" parameterType="HashMap" resultType="HashMap">
        SELECT 1 AS TEST_VALUE FROM DUAL
    </select>
    
</mapper
cs


주의!!

<mapper namespace="com.pkg.sample.SampleDao">

위 항목의 경로를 우리가 테스트 하고자 하는 DAO의 패키지 경로를 잘 맞춰 주어야 한다. 


각각의 파일을 해당위치에 만들었으면 테스트를 해보도록 하자


톰켓 시작



에러 없이 잘 떳다..

브라우저에서 테스트를 해본다.



JSP파일을 대충만들어 값이 저렇게 찍히긴 했는데 통신과는 성공한 것이다. 

JSTL에 대한 기록이 아니므로 저부분은 생략하도록 한다.


Part 03 까지 마이바티스 연동 관련하여 내용을 마친다. 



 다음은 JackSon JSON View를 이용한 MessageConverter에 관련된 내용을 작성해 볼 예정이다..(지금 말고.. 다음에..)




+ Recent posts