#34 스프링(spring) 공부중~!
오늘의 노래!!!
- 아티스트
- 지코 (ZICO)
- 앨범
- Boys and Girls
- 발매일
- 1970.01.01

먼저 4개의 xml파일 확인!!!
root-context.xml
mapper위치 확인하기!!!
<!-- mapper 위치 확인 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:/mybatis-config.xml"/>
<property name="mapperLocations" value="classpath:com/icia/input/dao/mapper/*.xml" />
</bean>
servlet-context.xml
context위치 확인하기!!!
<context:component-scan base-package="com.icia.*" />
<context:component-scan base-package="com.icia.input.controller" />
Mapper.xml
// namespace="이름 주의!!!"
<?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="Member">
</mapper>
STS 프로젝트 생성
(1) spring legacy project 생성
(2) Spring MVC Project 선택후
(3) com.팀이름.프로젝트이름 생성
(4) 프로젝트 생성 후 Build Path 설정 (JRE-11로 설정, Compiler도 11로 변경, Dynamic webmodule 4.0, Java 11로 설정)
4가지 설정 파일 복사
(1) pom.xml --> version 아래에서 부터 복사(properties 부터)
(2) servlet-context.xml --> 파일경로 확인 (base-package 2개 확인)
(3) root-context.xml --> 파일경로 확인(classpath 뒤) , DB ID,PW확인
(4) web.xml --> 그대로 복사
4개 패키지 생성 (controller, service, dao, dto)
1개 폴더 생성 (dao/mapper)
dto 패키지 에서 DTO(class)파일 생성
mapper 폴더에서 mapper.xml 생성(mapper 태그 namespace ="" 확인)
src/main/resources - mybatis-config.xml생성(Aliases 파일 경로 확인-->경로 끝 DTO(class파일))
Homecontroller.java
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "home";
}
}
return "/WEB-INF/views/home.jsp"; == return "home";
이제 inputcontroller사용을 위해 homecontroller를 삭제
inputcontroller.java 사용
// controller에서 String타입은 메소드 페이지 이동시에 사용!!!
package com.icia.input.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
//class 의미!!!
@Controller
public class InputController {
private static final Logger logger = LoggerFactory.getLogger(InputController.class);
// 프로젝트의 시작페이지!!!
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "index";
}
// input 리턴 받기
@RequestMapping(value = "/InputDB", method = RequestMethod.GET)
public String InputDB() {
return "InputDB";
}
// insertDB 리턴 받기
@RequestMapping(value = "/insertDB", method = RequestMethod.GET)
public String insertDB(@RequestParam("data1") String data1) {
// String data1 = request.getParameter("data1");
return "mav";
}
// controller에서 String타입은 메소드 페이지 이동시에 사용!!!
}
@RequestParam("data1") String data1 == String data1 = request.getParameter("data1");
이전 이클립스때 사용.. ↓
// InputService svc = new InputService();
// int result = svc.insertDB(data1);
하지만 한번만 변경
Member프로젝트 만들기!!!
STS 프로젝트 생성
(1) spring legacy project 생성
(2) Spring MVC Project 선택후
(3) com.팀이름.프로젝트이름 생성
(4) 프로젝트 생성 후 Build Path 설정 (JRE-11로 설정, Compiler도 11로 변경, Dynamic webmodule 4.0, Java 11로 설정)
4가지 설정 파일 복사
(1) pom.xml --> version 아래에서 부터 복사(properties 부터)
(2) servlet-context.xml --> 파일경로 확인 (base-package 2개 확인)
(3) root-context.xml --> 파일경로 확인(classpath 뒤) , DB ID,PW확인
(4) web.xml --> 그대로 복사
4개 패키지 생성 (controller, service, dao, dto)
1개 폴더 생성 (dao/mapper)
dto 패키지 에서 DTO(class)파일 생성
mapper 폴더에서 mapper.xml 생성(mapper 태그 namespace ="" 확인)
src/main/resources - mybatis-config.xml생성(Aliases 파일 경로 확인-->경로 끝 DTO(class파일))
[1] 먼저 controller, dao, service에 org페이지 작성해준다
controller 예를 들어 ↓
@Controller
public class MemberController {
@Autowired
private MemberSerivce msvc = new MemberSerivce();
private static final Logger logger = LoggerFactory.getLogger(MemberController .class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index() {
return "index";
}
}
dao 예를 들어 ↓
@Repository
public class MemberDAO {
@Autowired
private SqlSessionTemplate sql;
public int memberJoin(MemberDTO member) {
return sql.insert("Member.memberJoin", member);
}
}
service 예를 들어 ↓
@Service
public class MemberSerivce {
private ModelAndView mav = new ModelAndView();
@Autowired
private MemberDAO mdao;
}
//mybatis-config.xml 중요!!!
경로 설정 잘 확인하기!!
<?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>
<typeAliases>
<typeAlias type="com.icia.member.dto.MemberDTO" alias="member"/>
</typeAliases>
</configuration>
//memberMapper.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="Member">
<insert id="memberJoin" parameterType="member">
INSERT INTO MEMBERDTO VALUES(#{memId},#{memPw},#{memName},#{memBirth},#{memGender},#{memEmail},#{memPhone})
</insert>
</mapper>
// index.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>Member_index</title>
</head>
<body>
<!-- 회원가입 버튼을 만들어서 클릭햇을경우 회원가입(MemerJoin.jsp)로 이동 -->
<!-- 주소는 joinForm -->
<button onclick="location.href='joinForm'">회원가입1</button>
<button id="join">회원가입2</button>
<script src="https://code.jquery.com/jquery-3.6.4.js"
integrity="sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E="
crossorigin="anonymous">
</script>
<script>
$('#join').click(function(){
location.href="joinForm";
});
</script>
</body>
</html>
// MemberJoin.jsp 작성 (회원가입 화면 나타내기)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MEMBER_Join</title>
<style>
table, td, th{
border : 1px solid black;
border-collapse : collapse;
}
td, th{
padding : 10px;
}
caption {
margin-bottom : 10px;
font-size : 20px;
font-weight : bold;
}
table{
width : 400px;
}
</style>
</head>
<body>
<form action="memberJoin" method="post">
<table>
<caption>회원가입 페이지</caption>
<tr>
<th colspan="2">인천일보 아카데미 가입 신청서</th>
</tr>
<tr>
<th>항목</th>
<th>내용</th>
</tr>
<tr>
<th>아이디</th>
<td><input type="text" name="memId"/></td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" name="memPw"/></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" name="memName"/></td>
</tr>
<tr>
<th>성별</th>
<td>
남자 <input type="radio" name="memGender" value="남자"/>
여자 <input type="radio" name="memGender" value="여자"/>
</td>
</tr>
<tr>
<th>생년월일</th>
<td><input type="date" name="memBirth"/></td>
</tr>
<tr>
<th>이메일</th>
<td><input type="email" name="memEmail"/></td>
</tr>
<tr>
<th>연락처</th>
<td><input type="text" name="memPhone"/></td>
</tr>
<tr>
<th colspan="2">
<input type="submit" value="가입"/>
<input type="reset" value="다시작성"/>
</th>
</tr>
</table>
</form>
</body>
</html>