728x90

WEB-INF/config/root-context.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
                          http://www.springframework.org/schema/beans/spring-beans.xsd">



</beans>

WEB-INF/config/servlet-context.xml

<?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">

    <!-- 스캔한 패키지 내부의 클래스 중 controller로 로딩하도록 한다 -->
    <annotation-driven />

    <!-- 스캔할 Bean들이 모여있는 패키지를 지정한다 -->
    <context:component-scan
            base-package="kr.bit.controller" />

    <!-- controller메서드에서 반환하는 문자열 앞 뒤에 붙힐 경로 설정 -->
    <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>

    <!-- 정적파일 세팅 -->
    <resources location="/resources/" mapping="/**"></resources>

    <!-- properties파일 내용 쓸수있도록 bean정의해야함 -->
    <beans:bean class='org.springframework.beans.factory.config.PropertyPlaceholderConfigurer'>
        <beans:property name="location">
            <beans:value>/WEB-INF/properties/db.properties</beans:value>
        </beans:property>
    </beans:bean>

    <beans:bean class='org.apache.commons.dbcp2.BasicDataSource' id='basic_data_source'>
        <beans:property name='driverClassName' value='${db.classname}' />
        <beans:property name="url" value="${db.url}" />
        <beans:property name="username" value='${db.username}' />
        <beans:property name="password" value='${db.password}' />
    </beans:bean>

    <beans:bean class='org.mybatis.spring.SqlSessionFactoryBean' id='sqlSession'>
        <beans:property name="dataSource" ref='basic_data_source' />
        <beans:property name="mapperLocations" value='/WEB-INF/mapper/*.xml' />
    </beans:bean>

    <beans:bean class='org.mybatis.spring.SqlSessionTemplate' id='sqlSessionTemplate'>
        <beans:constructor-arg index='0' ref='sqlSession' />
    </beans:bean>
</beans:beans>

WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                   http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">

    <!-- 현재 웹 애플리케이션에서 받아들이는 모든 요청에 대해 appServlet이라는 이름으로 정의되어 있는 서블릿을 사용하겠다. -->
    <servlet-mapping>
       <servlet-name>appServlet</servlet-name>
       <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 요청 정보를 분석해서 컨트롤러를 선택하는 서블릿을 지정한다. -->
    <servlet>
       <servlet-name>appServlet</servlet-name>
       <!-- Spring MVC에서 제공하고 있는 기본 서블릿을 지정한다. -->
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <!-- Spring MVC 설정을 위한 xml 파일을 지정한다. -->
       <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/config/servlet-context.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- Bean을 정의할 xml 파일을 지정한다. -->
    <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>/WEB-INF/config/root-context.xml</param-value>
    </context-param>

    <!-- 리스너설정 -->
    <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <!-- 파라미터 인코딩 필터 설정 -->
    <filter>
       <filter-name>encodingFilter</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
       <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
       </init-param>
       <init-param>
          <param-name>forceEncoding</param-name>
          <param-value>true</param-value>
       </init-param>
    </filter>

    <filter-mapping>
       <filter-name>encodingFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

WEB-INF/properties

 

db.classname=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/스키마이름
db.username=아이디
db.password=비번

 

WEB-INF/mapper/mapper.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="test">
    <insert id="insert_data" parameterType="kr.bit.beans.Data">
       <![CDATA[
        insert into mvc_table(num1,num2,num3)
        values(#{num1}, #{num2}, #{num3})
        ]]>
    </insert>

    <select id="select_data" resultType="kr.bit.beans.Data">
       <![CDATA[
        select num1,num2,num3 from mvc_table
        ]]>
    </select>
</mapper>

 

pom.xml - 의존성 추가

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.3.RELEASE</version>
</dependency>


<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-dbcp2</artifactId>
    <version>2.7.0</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4</version>
</dependency>

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.3</version>
</dependency>


SpringController( @Mapping)

package kr.bit.controller;

import java.util.List;

import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import kr.bit.beans.Data;

@Controller
public class SpringController {

    @Autowired
    SqlSessionTemplate sqlSessionTemplate;

    @GetMapping("/input_test")
    public String input_test() {
        return "input_test";
    }

    @PostMapping("/input_proc")
    public String input_proc(Data data) {
        //                        namespace.id값
        sqlSessionTemplate.insert("test.insert_data", data);
        return "input_proc";
    }

    @GetMapping("/read_test")
    public String read_test(Model model) {

        List<Data> li=sqlSessionTemplate.selectList("test.select_data");

        model.addAttribute("li",li);
        return "read_test";

    }
}

MySql DB 테이블 설정


index.jsp화면

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="input_test">input_test</a><br>
	<a href="read_test">read_test</a>
	
	<!--  read_test컨트롤러 짜고 mapper짜고 read_test.jsp만들어서 내가 입력한 값을 브라우저 출력-->
	
</body>
</html>

 

input_test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
<form action="input_proc" method="post">
    num1 : <input type="text" name="num1"><br>  <!-- num1,2,3에 입력한 값을 Data클래스 필드에 넣기 -->
    num2 : <input type="text" name="num2"><br>
    num3 : <input type="text" name="num3"><br>

    <button type="submit">확인</button>
</form>



</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>
저장 끝
</body>
</html>

저장이 되면 저장 끝 문자열 출력됨..

 

 

db에 입력된 화면

 

 

 

 

read_test.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
</head>
<body>

</body>
</html>

 

DB에 잘 들어간 모습을 볼 수 있다.

728x90

'Frameworks > Spring' 카테고리의 다른 글

[Spring] Board CRUD (use Bootstrap) II  (1) 2024.05.14
[Spring] Board CRUD (use Bootstrap)  (2) 2024.05.13
[Spring] MVC (Restcontroller)  (2) 2024.05.13
[Spring] MVC (DB Setting with MyBatis)  (2) 2024.05.12
[Spring] MVC (Interceptor)  (0) 2024.05.12

+ Recent posts