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 테이블 설정
<%@ 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>
<%@ 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>
저장이 되면 저장 끝 문자열 출력됨..
<%@ 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 |