์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array ๊ฐ์ฒด
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey๐ณ๐
[64] 230330 Spring: ํ์ ์ ๋ณด ์์ , ์ญ์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ. *id๊ฐ ๋๊ธฐ๊ธฐ [K-๋์งํธ ํธ๋ ์ด๋ 64์ผ] ๋ณธ๋ฌธ
[64] 230330 Spring: ํ์ ์ ๋ณด ์์ , ์ญ์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ. *id๊ฐ ๋๊ธฐ๊ธฐ [K-๋์งํธ ํธ๋ ์ด๋ 64์ผ]
yjyuwisely 2023. 3. 30. 12:50230329 Thu 64th class
Ch. 18 MVC ํจํด ๊ตฌํ
์ง๋: Ch. 18 MVC ํจํด ๊ตฌํ์ ๊ธฐ๋ฐํ ์์ฒด ์์
(๊ต์ฌ: ์ต๋ฒ๊ท ์ JSP 2.3 ์น ํ๋ก๊ทธ๋๋ฐ: ๊ธฐ์ด๋ถํฐ ์ค๊ธ๊น์ง, ์ ์: ์ต๋ฒ๊ท )
์ฑ
์์ ์ฝ๋: https://github.com/madvirus/jsp23
์ ์ ๋ธ๋ก๊ทธ: https://javacan.tistory.com/
์ต๋ฒ๊ท ์ JSP 2.3 ์น ํ๋ก๊ทธ๋๋ฐ: ๊ธฐ์ด๋ถํฐ ์ค๊ธ๊น์ง | ์ต๋ฒ๊ท - ๊ต๋ณด๋ฌธ๊ณ
์ต๋ฒ๊ท ์ JSP 2.3 ์น ํ๋ก๊ทธ๋๋ฐ: ๊ธฐ์ด๋ถํฐ ์ค๊ธ๊น์ง | [์ต๋ฒ๊ท ์ JSP 2.3 ์น ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด๋ถํฐ ์ค๊ธ๊น์ง]๋ JSP 2.3์ ์๋ก์ด ํน์ง ๋ฐ์๊ณผ JSP๋ฅผ ์ง์ํ๋ ์์์ธ ์๋ธ๋ฆฟ๊ณผ ํํ ์ธ์ด ๋ฑ์ ์๋ก์ด
product.kyobobook.co.kr
์ค๋ ๋ฐฐ์ด ๊ฒ ์ค ๊ธฐ์ตํ ๊ฒ์ ์ ๋ฆฌํ๋ค.
๋ค์ ๊ธฐ์ตํ ๊ฒ
input ํ๊ทธ๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ ๊ฐ์ ํ์ดํํ๋ ํํ๊ฐ ์๋, ๋จ์ํ๊ฒ ๋ณด์ด๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
๋ค์ readonly๋ฅผ ๋ถ์ด๊ฑฐ๋,
ํํ์์ ๋๊ณ input ํ๊ทธ์ type์ hidden์ผ๋ก ์ค์ ํ๋ค.
๋ฒํธ: <input type="text" name="no" value="<%=rs.getString("no") %>" readonly> <!-- ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ --> ๋ฒํธ: <%=rs.getInt("no") %> <input type="hidden" name="no" value="<%=rs.getString("no") %>"> <!-- ๋๋ฒ์งธ ๋ฐฉ๋ฒ: hidden ์ด๋ค. -->
์ด ๊ธ์ ์ ์ผ ๋ง์ง๋ง์ ์๋ ๋ด์ฉ์ธ๋ฐ, ์์ ๋ด์ฉ์ ์์ฉํ ๊ฒ์ด๋ค.
input type="hidden"์ผ๋ก input ํํ๋ ์จ๊ธด๋ค. ๊ฒ์ํ ๋ชฉ๋ก์ ์์ฑ์ผ๊ณผ ์๊ฐ์ MySQL์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
<%=session.getAttribute("user_id")%> <input type="hidden" name="id" value="<%=session.getAttribute("user_id")%>">
์ ์ ๋ฐ ํน์ง
<input> ํ๊ทธ์ formaction ์์ฑ์ ํผ ๋ฐ์ดํฐ(form data)๊ฐ ์๋ฒ๋ก ์ ์ถ๋ ๋ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ํ์ผ์ URL์ ๋ช
์ํ๋ค.
์ด ์์ฑ์ <input> ์์์ type ์์ฑ๊ฐ์ด โsubmitโ ๋๋ โimageโ์ธ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
formaction ์์ฑ์ <form> ์์์ action ์์ฑ๊ฐ์ ์ฌ์ ์(overriding)ํฉ๋๋ค.
๋ฌธ๋ฒ
<input type="submit|image" formaction="URL">
์ฐธ๊ณ : http://www.tcpschool.com/html-tag-attrs/input-formaction
<form method="post> <table> <!-- (์ค๋ต) --> </table> <input type="submit" value="์์ " formaction="modifyBoard.jsp"> <input type="submit" value="์ญ์ " formaction="removeBoard.jsp"> </form>
loginVO ์ฐธ๊ณ
ํ์ ์ ๋ณด ์์ , ์ญ์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
์ฐ์ SQL๋ก ์๊ฐํด ๋ณด๊ธฐ
id๊ฐ abcd์ธ ํ์ ์ ๋ณด๋ฅผ ์์ ํ๋ค.
update member set name = 'a', password = '1', phone = '010' where id = 'abcd' ;
id ๊ฐ์ ๋๊ธฐ๊ธฐ
๋ ๊ฐ์ง ๋ฐฉ๋ฒ
1. form ํ๊ทธ๋ฅผ ์ด์ฉํ๋ค.
<form action="listDetail"> ์์ด๋<input type="text" name="id> </form>
2. a ํ๊ทธ ์ด์ฉํ๋ฉด ๋๋ค.
<a href="listDetail?id=ํน์ ์์ด๋๊ฐ">์์ด๋</a>
listDetail.jsp๋ก ๊ฐ๊ธฐ ์ ์ select๋ก ์์ด๋ ๊ฐ์ ๊ฐ์ ธ๊ฐ๋ค.
์ฌ๊ธฐ์๋ form ํ๊ทธ๋ฅผ ์ด์ฉํ๋ค. get๋ฐฉ์์ ์ฐ๋ฉด ๋ ธ์ถ๋๋ค.
list.jsp
์์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์๋ URL์ด ๋์ค๋๋ก ๋ง๋ ๋ค.
http://localhost:8081/listDetail?id=aaa

์ฝ๋ 1) list.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>ํ์ ๊ด๋ฆฌ ํ์ด์ง</title> </head> <body> <!-- ${memlist} --> <table border="1"> <tr> <td>ID</td><td>๋น๋ฐ๋ฒํธ</td><td>์ฃผ์</td><td>ํฐ๋ฒํธ</td><td>์ด๋ฉ์ผ</td><td>์ด๋ฆ</td><td>์์ผ</td> </tr> <!-- c:forEach var="๋ณ์" items="์์ดํ
" --> <c:forEach var="list" items="${memlist}"> <!-- ๋ฐ๋ณตํ๋ค. --> <tr> <td><a href="listDetail?id=${list.id}">${list.id}</a></td> <!-- ๋ด๊ฐ ํ๋ฆฐ ๋ถ๋ถ: <a href="listDetail"> ์์ ?id=${list.id} ์ถ๊ฐํ๋ฉด id๊ฐ์ด listDetail.jsp๋ก ๋์ด๊ฐ๊ฒ ๋๋ค. --> <td>${list.password}</td> <td>${list.addr}</td> <td>${list.phone}</td> <td>${list.email}</td> <td>${list.name}</td> <td>${list.age}</td> </tr> </c:forEach> </table> </body> </html>
์ฝ๋ 1.1) listDetail.jsp
์ค๋ฅ๊ฐ ๋ ์ด์ ๋
</input type="submit" value="์์ " formaction="modify">
</input type="submit" value="์ญ์ " formaction="remove">
์ ์ฐ๊ธฐ ์ ์ <form method="post"> (์ค๋ต) </form>์ ์จ์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ input ํ๊ทธ ์์ name์ ์ธ ๋ LoginVO.java์ ๋ณ์๋ช
์ ์ ์ฒดํฌํด์ ์คํ๊ฐ ์๊ฒ ํ๋ค.
public class LoginVO { private String id; private String password; private String addr; private String phone; private String email; private String name; private int age; public String getId() { return id; } (์ค๋ต) }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>๊ฐ์ธ ํ์ ๊ด๋ฆฌ ์์ธ ํ์ด์ง</title> </head> <body> <!-- DB ์์
์ ํด์ผํ๋ค. ์๋น์ค์ Mapper์ ๋ณด๋ด์ค๋ค. --> <%-- ${listDetail} --%> <%-- <a href="listDetail?id=${list.id}">์์ด๋</a> --%> <form method="post"> <table border="1"> <tr> <!-- name์ LoginVO์ ๋ง์ถฐ์ค์ผ DB๋ก ๋ณด๋ด์ง๋ค. --> <td>ID</td><!-- id๋ DB์ ๋ณด๋ด๋ ค๋ฉด inputํ๊ทธ๊ฐ ํ์ํ๋ค. --> <%-- <input type="text" value="${listDetail.id}" name="id" readonly> ์ด ๋ฐฉ์๋ ๊ฐ๋ฅํ๋ค. --%> <td>${listDetail.id} <input type="hidden" name="id" value="${listDetail.id}"></td> </tr> <tr><!-- ํ์ ์ ๋ณด ์์ ๊ฐ๋ฅ --> <td>๋น๋ฐ๋ฒํธ</td> <td><input type="password" value="${listDetail.password}" name="password"></td> </tr> <tr> <td>์ฃผ์</td><%-- <td><input type="text" value="${listDetail.addr}" name="addr"></td> --%> <td>${listDetail.addr}</td> </tr> <tr><!-- ํ์ ์ ๋ณด ์์ ๊ฐ๋ฅ --> <td>ํฐ๋ฒํธ</td> <td><input type="text" value="${listDetail.phone}" name="phone"></td> </tr> <tr> <td>์ด๋ฉ์ผ</td><%-- <td><input type="text" value="${listDetail.email}" name="email"></td> --%> <td>${listDetail.email}</td> </tr> <tr><!-- ํ์ ์ ๋ณด ์์ ๊ฐ๋ฅ --> <td>์ด๋ฆ</td> <td><input type="text" value="${listDetail.name}" name="name"></td> </tr> <tr> <td>์์ผ</td> <td>${listDetail.age}</td> </tr> <tr> <td colspan="2"> <input type="submit" value="์์ " formaction="modify"> <input type="submit" value="์ญ์ " formaction="remove"></td></tr> </table> </form> </body> </html>
์ฝ๋ 2) MemberController.java
package org.hj.controller; import javax.servlet.http.HttpSession; import org.hj.model.LoginVO; //๋ชจ๋ธ(LoginVO)์ด ์์์ ์๋ ค์ค๋ค. import org.hj.service.LoginService; 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 org.springframework.web.servlet.mvc.support.RedirectAttributes; @Controller public class MemberController { //MVC์ค ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ค. @Autowired LoginService ls; //LoginService ls = new LoginService(); ํด๋์ค๋ฅผ new๋ฅผ ์จ์ ๊ฐ์ฒดํํ ๊ฒ. //LoginService๋ ์ธํฐํ์ด์ค์ด๋ฏ๋ก ์๋ new๋ ์ ๋๋ ๋ฐ ์์ @AutoWired ์ด์ฉํด์ ๊ฐ๋ฅํ๊ฒ ํ๋ค. //1) ํ์๊ฐ์
//ํ๋ฉด ์คํ์ ์ํ ๋ฉค๋ฒ (GET๋ฐฉ์) @RequestMapping(value = "/member", method = RequestMethod.GET) //member ๋ฉ์๋ GET ๋ฐฉ์ public String member () { return "member/memberin"; //๋ฉค๋ฒ ํด๋์ memberin.jsp๋ฅผ ์คํํ๋ค. } //1.1) ํ์๊ฐ์
์๋ฒ //์ค์ ๋ก ๊ฐ์
ํ๊ธฐ ์ํ ๋ฉค๋ฒ (POST๋ฐฉ์) @RequestMapping(value = "/member", method = RequestMethod.POST) //๋ ๋ค GET์ด๋ฉด ์ถฉ๋์ด ์ผ์ด๋๋ค. ๋ฉ์๋ ๋ฐฉ์์ด POST์ด๋ค. // int a //member๋ ์ฐธ์กฐ ๋ณ์ //public String memberPost(String id, String password, String name) //๋ฉ๋ชจ๋ฆฌ ์ฐจ์ง๊ฐ ํฌ๋ฏ๋ก ์ฐ์ง ์๋ ๋ฐฉ๋ฒ์ด๋ค. private ๊ฐ์ ์ ๊ทผ ์ ํ์๋ ์๋ค. public String memberPost (LoginVO member) { // ๋ชจ๋ธ: LoginVO System.out.println(member); //member.toString()์ด ์๋ต๋ ๊ฒ์ด๋ค. //#####์๋ก ์ถ๊ฐํจ##### ls.memreg(member); return "board/list"; //board ํด๋์ list.jsp๋ฅผ ์คํํ๋ค. ๊ฒ์ํ ๋ชฉ๋ก์ ๋ณด์ฌ์ค๋ค. } //2) ๋ก๊ทธ์ธ ํ์ด์ง @RequestMapping(value = "/login", method = RequestMethod.GET) public String login () { System.out.println("aaaa"); return "member/login"; } //2.1) ๋ก๊ทธ์ธ ์๋ฒ @RequestMapping(value = "/login", method = RequestMethod.POST) public String loginPost (HttpSession session, LoginVO member) { //member: login.jsp์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค. // HttpSession session = new HttpSession; ์ ()์์ HttpSession session์ ์ง์ฐ๊ณ ๋์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. /* System.out.println("contorller="+member); System.out.println(ls.login(member));*/ session.setAttribute("login", ls.login(member)); //์ member์ ์์ด๋, ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ ธ๊ฐ๋ค. if (ls.login(member)==null) { return "member/login"; } else { session.setAttribute("login", ls.login(member)); //null์ด ์๋๋ฉด ์ธ์
์ ์ ์ฅํ๋ค. return "redirect:/list"; //์๋ ์ฃผ์ ์ ์ํด์ค ๊ฒ ์์ด์ ์ฒ์์ ์๋ฌ๋จ (board์ list.jsp๋ก ๊ฐ๋ ๊ฒ ์๋ ๋ฏ -> member ํด๋์ list.jsp ๋ฐ๋ก ๋ง๋ค์ด์ผํ๋ค.) //return "/board/list"; //๊ฒ์ํ ๋ฆฌ์คํธ ๋ณด๊ธฐ ์ํด ๋ด๊ฐ ์๋ ์ฝ๋๋ก ๋ฐ๊ฟ. } } //3) ํ์ ๊ด๋ฆฌ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) @RequestMapping(value = "/list", method = RequestMethod.GET) //value:์์ฒญ๋ฐ์ url์ ์ค์ ํ๊ฒ ๋๋ค. public String mergerlist(Model model) { //์ฒ์ ์๋ฌ ๋ฉ์์ง ์๋ ์ด์ : ๋ฆฌํด์ด ์์ด์ผ ํ๋ค. //model.addAttribute(String name, Object value); //: value ๊ฐ์ฒด๋ฅผ name ์ด๋ฆ์ผ๋ก ์ถ๊ฐํจ. ๋ทฐ ์ฝ๋์์๋ name์ผ๋ก ์ง์ ํ ์ด๋ฆ์ ํตํด์ value๋ฅผ ์ฌ์ฉํจ. model.addAttribute("memlist", ls.memlist()); //ls.memlist()->memlist:๋ฐ์ดํฐ ์ ์ฅํด์ ๋๊ธด๋ค. return "member/list"; //memberํด๋์ list.jsp ๋ง๋ค์ด์ค๋ค. /WEB-INF/views/member/list.jsp } //4) ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) @RequestMapping(value = "/listDetail", method = RequestMethod.GET) //list.jsp์ <a>ํ๊ทธ์ ?์ ๋๊ณ ๊ฐ๋ ๊ฒ ์์ผ๋ฉด ๊ฐ์ด ๊ฐ๊ฒ ๋๋ค. //public String memberDetail(String id) {//๋งค๊ฐ ๋ณ์๋ฅผ ๋๋ค. public String memberDetail(LoginVO login, Model model) { // ๋งค๊ฐ๋ณ์๋ฅผ (LoginVO login)๋ก๋ ํด๋ ๋๋ค (private String id๊ฐ ์ ์๋์ด์์ผ๋ฏ๋ก) //์ฒ์ ์๋ฌ ๋ฉ์์ง: ๋ฆฌํด์ด ์์ด์ผ ํ๋ค. //ls.memlistDetail(id);//[#๋ฉ์๋ ํธ์ถ#] model.addAttribute("listDetail", ls.memlistDetail(login)); return "member/listDetail"; // /WEB-INF/views/member/listDetail.jsp } //5) ํ์ ์ ๋ณด ์์ @RequestMapping(value = "/modify", method = RequestMethod.POST)//๋
ธ์ถ ์ ๋๊ฒ POST๋ฐฉ์์ ์ด๋ค. public String memberModify(LoginVO login, RedirectAttributes rttr) { //rttr:๋ณ์๋ช
//(String name, String id, String password, String phone)์ผ๋ก๋ ๊ฐ๋ฅํ๊ธด ํ๋ค. ํจ์จ์ ์ด์ง ์์ผ๋ฏ๋ก ์ถ์ฒ๋์ง ์๋๋ค. ls.memberModify(login); rttr.addAttribute("id", login.getId());//id๊ฐ์ด ๋์ด๊ฐ๋ค. return "redirect:/listDetail";//์์ ํ ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง๋ก ๊ฐ๋ค. } //6) ํ์ ์ ๋ณด ์ญ์ @RequestMapping(value = "/remove", method = RequestMethod.POST)//๋
ธ์ถ ์ ๋๊ฒ POST๋ฐฉ์์ ์ด๋ค. public String memberRemove(LoginVO login) { ls.memberRemove(login); return "redirect:/list";//์ญ์ ํ ํ์ ๊ด๋ฆฌ ํ์ด์ง๋ก ๊ฐ๋ค. } }
์ฝ๋ 3) LoginService.java
package org.hj.service; //LoginService๋ ํจํค์ง ์์ ์๋ค. import java.util.ArrayList; import org.hj.model.LoginVO; //์ธํฐํ์ด์ค(๋๋ฉด): ์ค๊ณํ๋ค. ๋งค๊ฐ ๋ณ์ ๋ฑ ํ์
ํด์ ๋ฏธ๋ฆฌ ์ค๊ณํด๋ ๊ณณ์ด๋ค. public interface LoginService { //์ธํฐํ์ด์ค๊ฐ new()๋ฅผ ํ ์ ์์ผ๋ฏ๋ก MemberController.java์ @Autowired๋ฅผ ์ค์ //#####์๋ก ์ถ๊ฐํจ##### //1) ํ์๊ฐ์
public void memreg(LoginVO member); //์ถ์๋ฉ์๋์ด๋ฏ๋ก LoginServiceImpl.java์์ ๊ตฌํํ๋ค. //2) ๋ก๊ทธ์ธ public LoginVO login(LoginVO member); //3) ํ์ ๋ฆฌ์คํธ public ArrayList<LoginVO> memlist(); //๋น์๋๋ค. //4) ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) //public LoginVO memlistDetail(String id);//[#๋ฉ์๋ ์ ์ธ#] //๋ฆฌํด ํ์
์ ๋ชจ๋ฅด๊ฒ ์ผ๋ฉด ์ฐ์ void๋ก ๋๋ค. public LoginVO memlistDetail(LoginVO login); //5) ํ์ ์ ๋ณด ์์ public void memberModify(LoginVO login); //6) ํ์ ์ ๋ณด ์ญ์ public void memberRemove(LoginVO login); }
์ฝ๋ 4) LoginServiceImpl.java
package org.hj.service; //ํ์ผ์ ์์น๋ ํจํค์ง๋ฅผ ๋ณด๋ฉด ์ ์ ์๋ค. import java.util.ArrayList; import org.hj.mapper.LoginMapper; import org.hj.model.LoginVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; //๊ตฌํํ๋ค. @Service public class LoginServiceImpl implements LoginService { //LoginService๋ฅผ ๊ตฌํํ๋ค. @Autowired LoginMapper lm; //LoginMapper lm = new LoginMapper(); //#####์๋ก ์ถ๊ฐํจ##### //1) ํ์๊ฐ์
public void memreg(LoginVO member) { //์ถ์๋ฉ์๋ LoginSerive.java๋ฅผ ๊ตฌํํ๋ค. lm.memreg(member); }; //2) ๋ก๊ทธ์ธ public LoginVO login (LoginVO member) { System.out.println("service="+member); System.out.println("service return="+lm.login(member)); return lm.login(member); } //๋น์ฆ๋์ค๊น์ง ๋๋ฌ๋ค. ์๋น์ค -> DB ์ฐ๊ฒฐํด์ผํ๋ค. //3) ํ์ ๋ฆฌ์คํธ public ArrayList<LoginVO> memlist() { return lm.memlist(); } //4) ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) //public LoginVO memlistDetail(String id) { public LoginVO memlistDetail(LoginVO login) { return lm.memlistDetail(login);//[#๋ฉ์๋ ํธ์ถ#] } //5) ํ์ ์ ๋ณด ์์ public void memberModify(LoginVO login) { lm.memberModify(login);//[#๋ฉ์๋ ํธ์ถ#] } //6) ํ์ ์ ๋ณด ์ญ์ public void memberRemove(LoginVO login) { lm.memberRemove(login);//[#๋ฉ์๋ ํธ์ถ#] } }
์ฝ๋ 5) LoginMapper.java
package org.hj.mapper; import java.util.ArrayList; import org.hj.model.LoginVO; public interface LoginMapper { //#####์๋ก ์ถ๊ฐํจ##### //1) ํ์๊ฐ์
public void memreg(LoginVO member); //2) ๋ก๊ทธ์ธ public LoginVO login(LoginVO member); //3) ํ์ ๋ฆฌ์คํธ public ArrayList<LoginVO> memlist(); //4) ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) //public LoginVO memlistDetail(String id);//[#๋ฉ์๋ ์ ์ธ#] public LoginVO memlistDetail(LoginVO login); //5) ํ์ ์ ๋ณด ์์ public void memberModify(LoginVO login); //6) ํ์ ์ ๋ณด ์ญ์ public void memberRemove(LoginVO login); }
์ฝ๋ 6) LoginMapper.xml
์ฒ์์ ์ค๋ฅ๊ฐ ๋ ์ด์ ๋ <update>, <delete>๋ฅผ ์จ์ผ ํ๋ ๋ฐ ๊ทธ๋๋ก <select>๋ฅผ ์จ์์ด๋ค.
<?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="org.hj.mapper.LoginMapper"> <!-- #####์๋ก ์ถ๊ฐํจ##### --> <!-- 1) ํ์๊ฐ์
--> <insert id="memreg"> <!-- LoginMapper.java์ memreg๋ฅผ ์ฐ๊ฒฐํ๋ค. insertํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ค.--> insert into member (id, password, name, birthday, gender) values(#{id},#{password},#{name},sysdate(),"f"); </insert> <!-- 2) ๋ก๊ทธ์ธ --> <select id="login" resultType="org.hj.model.LoginVO"> <!-- ๊ตฌํ๋ฉ์๋๊ฐ ์์ผ๋๊น return์ด ์๋ค. --> <!-- ๋์ select๋ resultType์ด๋ผ๋ ํ์
์ด return ์ญํ ์ด๋ค. --> select id, password <!-- ๊ฒฐ๊ณผ๋ ํ ๊ฑด์ด๋ค. id๋ ๊ธฐ๋ณธํค์ด๋ค. --> from member where id=#{id} and password=#{password} </select> <!-- 3) ํ์ ๊ด๋ฆฌ ๋ฆฌ์คํธ ํ์ด์ง --> <select id="memlist" resultType="org.hj.model.LoginVO"> select * from member <!-- ๊ฒฐ๊ณผ๋ ์ฌ๋ฌ ๊ฑด์ด๋ค. LoginVOํ์
์ ๋ฐฐ์ด์ด ํ์ํ๋ค!--> </select> <!-- 4) ํ์ ์์ธ ์ ๋ณด ์กฐํ ํ์ด์ง (๊ด๋ฆฌ์ ์ ์ฉ) --> <select id="memlistDetail" resultType="org.hj.model.LoginVO"> <!-- select๋ ๊ฒฐ๊ณผ๋ฅผ org.hj.model.LoginVO ํด๋์ค์ ์ ์ฅํ๋ค. --> select * from member where id=#{id} <!-- id๋ฅผ ๋๊ณ ์ค๋ ์์
์ด ํ์ํ๋ค. ๋ฉ์๋์ ๋งค๊ฐ๋ณ์๋ก ๊ฐ๋ฅํ๋ค. ์ด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ: String id, LoginVO๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.--> </select> <!-- 5) ํ์ ์ ๋ณด ์์ --> <update id="memberModify"> update member <!-- update ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ด์ฃผ๋ ๊ฒ์ด ์๋๋ผ ๋ค์ select๋ฅผ ํ๋ค. --> set name = #{name}, password = #{password}, phone = #{phone} where id = #{id} </update> <!-- 6) ํ์ ์ ๋ณด ์ญ์ --> <delete id="memberRemove"> delete from member where id = #{id} </delete> </mapper>
๊ฒฐ๊ณผ) ํ์ ์ ๋ณด ์์ ํ๊ธฐ
id0329๋ฅผ ์์ ๋ฐ ์ญ์ ํ๊ธฐ๋ก ํ๋ค.



๊ฒฐ๊ณผ) ํ์ ์ ๋ณด ์ญ์ ํ๊ธฐ

