ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring - Amazon RDS DB 연동 및 확인 (Insert, Select)
    IT/Spring 2020. 5. 4. 10:28
    반응형

     

    안녕하세요 :)

    전 시간에는 Amazon RDS DB를 생성하고 설정하는 방법을 했는데,

    오늘 시간에는 설정한 RDS DB를 Spring Boot와 연동을 해보려고 합니다.

     

    요거까지 설정이 된다면 개발 셋팅이 얼추 마무리가 되어가네요.

     

    오늘도 차근차근 하나씩 적어볼꼐요.

     

     

    Spring - Amazon RDS DB 연동

     

    1. pom.xml - Mysql 및 MyBatis dependency 추가하기

     

    		<!-- MySQL -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>6.0.5</version>
            </dependency>
     
            <!-- MyBatis 3.4.1 -->
            <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.1</version>
            </dependency>
     
     
            <!-- MyBatis-Spring -->
            <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>1.3.0</version>
            </dependency>
     
            <!-- Spring-jdbc -->
            <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${org.springframework-version}</version>
            </dependency>
                    
            <!-- Json -->
            <dependency>
    		    <groupId>com.fasterxml.jackson.core</groupId>
    		    <artifactId>jackson-core</artifactId>
    		    <version>2.8.8</version>
    		</dependency>
    		
    		<dependency>
    			<groupId>org.codehaus.jackson</groupId>
    			<artifactId>jackson-mapper-asl</artifactId>		
    			<version>1.9.13</version>
    		</dependency>
    		
    		<dependency>
    		    <groupId>com.fasterxml.jackson.core</groupId>
    		    <artifactId>jackson-annotations</artifactId>
    		    <version>2.8.8</version>
    		</dependency>
    		
    		<dependency>
    		    <groupId>com.fasterxml.jackson.core</groupId>
    		    <artifactId>jackson-databind</artifactId>
    		    <version>2.8.8</version>
    		</dependency>

     

    pom.xml 에 위내용을 요렇게 추가해줍니당.

    <dependencyes> </dependencies> 요기 사이에 넣으시면 됩니당.

     

     

     

     

    2. root-context.xml - dataSource 및 sqlSession 추가하기

     

    AWS 홈페이지에 접속하여, 저희가 만든 RDS 를 정보를 확인합니당.

    엔드포인트 및 포트 부분을 확인하여, 엔드포인트를 root-context.xml 에 설정해주어야 합니당.

     

     

     

    엔드포인트 및 포트번호를 입력후,

    DB를 생성할 때 만들었던 계정의 ID와 비밀번호를 입력합니다.

     

    mybatis-config.xml 은 Mapper 역할을 하기에 요기다가 각 xml 메퍼들을 작성할 예정입니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
    	
    	<!-- Root Context: defines shared resources visible to all other web components -->
    	
    	<!-- MySQL dataSource -->    
        <bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
            <property name="url" value="jdbc:mysql://aws엔드포인트 입력:3306/webservice?useSSL=false"></property>
            <property name="username" value="본인의 id"></property>
            <property name="password" value="본인의 Password"></property>
        </bean>      
        
        <bean id="sqlSessionFactory"
    		class="org.mybatis.spring.SqlSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"></property>
    		<property name="configLocation" value="/WEB-INF/mybatis-config.xml"></property>
    	</bean>
    	
    	<bean id="transactionManager"
    		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="dataSource"></property>
    	</bean> 
    	
    	<bean id="sqlSession"
    		class="org.mybatis.spring.SqlSessionTemplate">
    		<constructor-arg  ref="sqlSessionFactory"></constructor-arg>
    	</bean>	
    </beans>
    

     

     

     

    3. test.xml 작성

     

    mybatis 폴더를 생성해주시고, 그 안에 test.xml 을 만듭니다.

    namespace와 id를 이용하여 호출하고 있으며,

     

    ResultType : 결과값을 VO 객체에 저장

    ParameterType : 파라미터로 받을 값을 VO 객체에서 가져온다.

     

    요 구성으로 되어 있으니 참고하시면 되겠습니당 :)

    <?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="test">
    
    	<select id="selectTest" resultType="com.spring.webservice.vo.testVO">
    		SELECT *
    		  FROM test;
     	</select>
    
     	<insert id="insertTest" parameterType="com.spring.webservice.vo.testVO">
    		INSERT INTO
    		       test (
    		       		  content
    		       )
    		       VALUES (
    			       		 #{content}     
    		       )
    	 </insert>
     </mapper>
    	

     

     

     

    4. mybatis-config.xml 만들기 ( 중요 ! )

     

    3번 그림 참조 !

    이 파일에서 매퍼를 추가하지 않으면 코드에서 아무리 호출해도 호출할 수가 없으므로,

    꼭꼭 추가해서 사용하셔야 합니다.

    <?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>
        <mappers>
        	<!-- 테스트 -->
            <mapper resource="/mybatis/test.xml" />
            
        </mappers >   
    </configuration>
    
    
    

     

     

     

    5. 사용할 페이지와 Controller 및 VO 만들기

     

    view 폴더 안에  'dbtest.jsp' 그리고 'inserttest.jsp' 파일을 만들어줍니다.

    그리고 요렇게 입력합니당.

     

     

     

    - inserttest.jsp

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ page session="false" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <html>
    <head>
    	<title>Home</title>
    </head>
    <body>
    	<a href="/webservice/inserttest">데이터 Insert</a>
    </body>
    </html>
    

     

    - dbtest.jsp

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ page session="false" %>
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <html>
    <head>
    	<title>Home</title>
    </head>
    <body>
    	<h1>
    		${id} <br/>
    		${content}
    		  
    	</h1>
    
    </body>
    </html>
    

     

    - VO 객체 만들기

     

    VO 객체를 통하여 컬럼에 넣을 파라미터와, 결과값들을 받기 위하여 만드는 것 입니다.

     

     

    - testVO.java

    package com.spring.webservice.vo;
    
    public class testVO {
    	private int id;
    	private String content;
    	
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getContent() {
    		return content;
    	}
    	public void setContent(String content) {
    		this.content = content;
    	}
    	
    	
    }
    

     

    - HomeController.java 수정하기 

     

    Insert : VO 객체에 데이터를 담아 쿼리를 수행하고 있습니다. 

    Select : Model을 이용하여 조회한 값을 페이지에서 확인할 수 있습니다.

    package com.spring.webservice;
    
    import java.text.DateFormat;
    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.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    
    import com.spring.webservice.vo.testVO;
    
    /**
     * Handles requests for the application home page.
     */
    @Controller
    public class HomeController {
    	
    	private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
    	
    	@Autowired
    	private SqlSession sqlSession;
    	
    	@RequestMapping(value = "/inserttest", method = RequestMethod.GET)
    	public String inserttest(Locale locale, Model model) {
    		testVO testVO = new testVO();
    		
    		testVO.setContent("테스트내용");
    		
    		sqlSession.insert("test.insertTest", testVO);
    		
    		return "inserttest";
    	}
    	
    	@RequestMapping(value = "/dbtest", method = RequestMethod.GET)
    	public String dbtest(Locale locale, Model model) {
    		testVO testSelect = sqlSession.selectOne("test.selectTest");
    		
    		System.out.println(testSelect.getId());
    		System.out.println(testSelect.getContent());
    		
    		model.addAttribute("id", testSelect.getId());
    		model.addAttribute("content", testSelect.getContent());
    		
    		return "dbtest";
    	}
     }

     

     

     

    6. 프로젝트 디렉토리 구성

     

    지금까지 잘 따라오셨다면,

    결과적으로는 이렇게 프로젝트가 구성되어 있으실 겁니다.

     

     

     

    그리고 마지막으로 테스트가 남아 있네요.

    테스트하러 고고 !

     

    서버를 구동하시고,

    주소창에 localhost:8080/webservice/inserttest 를 입력합니다.

     

    '데이터 Insert' 클릭 ! 

     

    Mysql Workbench 를 이용하여 데이터를 확인해보니 Insert가 정상적으로 됬네요. 

     

     

     

    요번에는 Insert 된 데이터들을 Select를 해보겠습니다.

    주소창에 localhost:8080/webservice/dbtest 를 입력합니다.

     

     

    잘 출력이 됩니다.

    요렇게 이번 시간에는 Spring 과 Amazon RDS DB를 연결하여 Insert, Select를 확인했습니당 !

    어려우시거나 잘 안되시는 부분있으시면 댓글 남겨주시면 도움을 드릴 수 있으면 드리겠습니당 :) 

     

     

    다음에 더 좋은 정보로 찾아올꼐용.

    모든 개발자 분들 화이팅 ! 

     

     

     

    반응형

    댓글

Designed by black7375.