ITWeb/개발일반 2012.03.12 10:36

Spring + Mybatis 연동은 sts 와 mybatis 문서를 기반으로 작성 하였습니다.

[소스코드]

- Eclipse import 하시면 프로젝트 확인 가능 합니다.

 

 

proto.board.zip
※ import/export 방법은 아래 글 참고하세요.
http://jjeong.tistory.com/564 

1. Spring MVC 구성해 보기.
2. Spring MVC 에 MyBatis 적용해 보기.
3. Spring MVC 에 Spring Security 적용해 보기. 
4. Spring MVC 에 Hibernate 적용해 보기. 
5. 2+3번 적용해 보기.
6. 3+4번 적용해 보기. 


- 소스코드를 첨부 하였으므로 요약 정보만 기술 합니다.

[pom.xml]

 

<!-- spring framework jdbc 설정 -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-jdbc</artifactId>

            <version>${org.springframework-version}</version>

        </dependency>

 

<!-- mysql -->

        <dependency>

            <groupId>mysql</groupId>

            <artifactId>mysql-connector-java</artifactId>

            <version>5.1.18</version>

        </dependency>

 

<!-- mybatis -->

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>3.0.6</version>

        </dependency>

 

<!-- mybatis spring -->

        <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis-spring</artifactId>

            <version>1.0.2</version>

        </dependency>

 

<!-- apache commons dbcp-->

        <dependency>

            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>

            <version>1.2.2</version>

        </dependency> 

- pom.xml 에서는 필요한 package depedency 를 작성해 줍니다.


[web.xml]

 

  <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

        /WEB-INF/spring/root-context.xml

        classpath:context/**/applicationContext*.xml

        </param-value>

  </context-param>

- spring framework 이 처음 로딩 될때 읽어 들여야 하는 설정파일들에 대한 path 를 잡아 줍니다.


[applicationContext-mybatis.xml]

 

    <bean id="propertyPlaceholderConfigurer"

        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <property name="locations">

            <value>classpath:configuration/mybatis/config.properties</value>

        </property>

    </bean>

 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

        destroy-method="close">

        <property name="driverClassName" value="${jdbc.driverClassName}" />

        <property name="url" value="${jdbc.url}" />

        <property name="username" value="${jdbc.username}" />

        <property name="password" value="${jdbc.password}" />

    </bean>

 

 

<!-- http://groups.google.com/group/ksug/browse_thread/thread/766cd1fd8ba39c96 -->

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

        <property name="dataSource" ref="dataSource" />

        <property name="mapperLocations" value="classpath*:sql/mybatis/mapper/**/*.xml" />

    </bean>
.... 중략

    <bean id="boardContentViewDAO" class="proto.board.dao.BoardContentViewDAOImpl">

        <property name="sqlSession" ref="sqlSession" />

    </bean> 

 

 

- dbcp 설정과 dao 에서 사용할 sqlSession 설정을 합니다.


[board.xml]

 

<?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="proto.board.mapper">

 

    <select id="getBoardContentView" resultType="proto.board.domain.BoardContentVO">

    SELECT

        document_srl,

        title,

        content,

        user_id,

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

        nick_name,

        email_address,

        regdate

    FROM

        xedemodb.xe_documents

    WHERE

        document_srl=66

    </select>

</mapper>

 

- 사용한 테이블은 xpressengine 이 설치 되면 기본 생성되는 xe_documents 의 테이블 입니다.
- 기본 CRUD 에 대한 내용은 mybatis 문서를 참고 하시면 아주 쉽습니다.

 

 

 

 



[config.properties]

 

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/xedemodb?autoReconnect=true

jdbc.username=root

jdbc.password=1234

※ jdbc url structure 참고

 

 

- 각자 접속 정보에 맞게 설정 하시면 됩니다.


[Class Flow - 초간단버전임]

http://localhost:8080/board/boardContentView

[BoardContentViewController.java]

 

    @Autowired

    private BoardContentViewService boardContentViewService;
    ...
    boardContentViewService.getBoardContentVO() 

 


[BoardContentViewServiceImpl.java]
- BoardContentViewService.java 는 interface 이므로 구현체인 BoardContentViewServiceImpl.java 확인

 

    @Autowired

    private BoardContentViewDAO boardContentViewDAO;

 

    public BoardContentVO getBoardContentVO() {

        return (BoardContentVO)boardContentViewDAO.getBoardContentVO();

    }

 

 

 

[BoardContentViewDAOImpl.java]
- BoardContentViewDAO.java 는 interface 이므로 구현체인 BoardContentViewDAOImpl.java 확인

 

    private SqlSession sqlSession;

 

    public void setSqlSession(SqlSession sqlSession) {

        this.sqlSession = sqlSession;

    }

 

    public BoardContentVO getBoardContentVO() {

        //boardContentVO.setContent("CONTENT");

        return (BoardContentVO) sqlSession.selectOne("proto.board.mapper.getBoardContentView");

    }

 


[board.xml]

 

<mapper namespace="proto.board.mapper">

    <select id="getBoardContentView" resultType="proto.board.domain.BoardContentVO">

    SELECT

        document_srl,

        title,

        content,

        user_id,

        nick_name,

        email_address,

        regdate

    FROM

        xedemodb.xe_documents

    WHERE

        document_srl=66

    </select>

</mapper>

 


[BoardContentViewVO.java]

 

public class BoardContentVO {

    private int documentSrl;

    private String title;

    private String content;

    private String nickname;

    private String email;

    private String regdate;

 

    public int getDocumentSrl() {

        return documentSrl;

    }

.... 중략

    public void setRegdate(String regdate) {

        this.regdate = regdate;

    }

}

 



자, 그럼 여기까지 아주 초간단 spring framework 과 mybatis 를 이용해서 SELECT 하는 것 까지 테스트 해봤습니다.
완전 기초 이니, 걍 참고만 하세요..



출처: http://jjeong.tistory.com/606 [jjeong]

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
126 Creating a CRUD REST API/Service with Spring Boot, JPA and Hibernate file 졸리운_곰 2018.08.17 147
125 Spring boot에서 REST API 개발 시작해보기 file 졸리운_곰 2018.08.17 350
124 [JSP] 네이버 스마트 에디터 연동 + 이미지파일 업로드 기능 추가 file 졸리운_곰 2018.07.28 1123
123 Use React and Spring Boot to Build a Simple CRUD App file 졸리운_곰 2018.07.28 385
122 JSP CRUD Example jsp 기본예제 file 졸리운_곰 2018.07.28 166
121 스웨거 2.0으로 스프링 부트 어플리케이션 API 문서화하기 file 졸리운_곰 2018.05.24 132
120 Spring REST API 문서를 Swagger로 만들자 file 졸리운_곰 2018.05.22 411
119 Spring REST API에 Swagger 2 설정하기 file 졸리운_곰 2018.05.22 335
118 Spring Boot와 AngualrJS를 조합한 코드 자동 생성 도구(scaffolding) file 졸리운_곰 2018.05.17 141
117 Spring java Code 기반 설정 Configuration 어노테이션과 Bean 어노테이션 졸리운_곰 2018.05.14 77
116 java spring redis 세션 공유 : Spring Session을 이용한 세션 클러스터링 졸리운_곰 2018.05.06 1041
115 Spring MVC hello world example file 졸리운_곰 2018.05.04 223
114 Create a Web Application With Spring Boot file 졸리운_곰 2018.05.03 142
113 Spring Boot and JSP Tutorial file 졸리운_곰 2018.05.03 427
112 Spring Boot Hello World Example – JSP file 졸리운_곰 2018.05.03 109
111 Spring Boot – JSP View Example file 졸리운_곰 2018.05.03 137
110 SpringMVC-JSP 프로젝트를 Spring Boot로 옮기기 file 졸리운_곰 2018.05.03 319
109 SPRING BOOT에서 JSP 사용하기 졸리운_곰 2018.05.03 65
108 MYBATIS 기본 - SELECTLIST file 졸리운_곰 2018.03.26 79
» Spring MVC 에 MyBatis 적용해 보기. file 졸리운_곰 2018.03.26 94
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED