Spring
2023.03.06
연을
2023. 3. 7. 08:37
728x90
<코드>
학생의 값을 입력받고 값 집어넣기
[mycontroller]
package com.human.springboot;
import java.util.ArrayList;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import com.human.springboot.IDAO;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/student_insert")
public String doinsert() {
return "student_insert";
}
@PostMapping("/AddStudent")
public String addStudent(HttpServletRequest req) {
String sname=req.getParameter("sname");
String gender=req.getParameter("gender");
String birthday=req.getParameter("birthday");
int math_score=Integer.parseInt(req.getParameter("math_score"));
int kor_score=Integer.parseInt(req.getParameter("kor_score"));
int eng_score=Integer.parseInt(req.getParameter("eng_score"));
idao.doInsert(sname, gender, birthday, math_score, kor_score, eng_score);
return "redirect:/list";
}
@GetMapping("/list")
public String doList(Model model) {
ArrayList<StudentDTO> alStudent= idao.list();
model.addAttribute("students",alStudent);
return "list";
}
}
[student.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="com.human.springboot.IDAO">
<select id="list" resultType="com.human.springboot.StudentDTO">
select sname,gender,birthday,math_score,kor_score,eng_score
from student
</select>
<insert id="doInsert">
insert into student values(#{param1},#{param2},#{param3},#{param4},#{param5},#{param6})
</insert>
</mapper>
[IDAO.java]
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<StudentDTO> list();
void doInsert(String x1,String x2,String x3,int x4, int x5, int x6);
}
[list.jsp]
이 코드 하나만 넣어준다.
<tr><td colspan=6 align=center><a href="/student_insert" >추가</a></td></tr>
[DB]
birthday값을 처음에 8자리로 줘서 값이 안들어가서 10자리로 바꿔준다.
commit은 DML문서에서만 작동 하므로 없어도 상관없지만 나는 한다... DML(insert,update,delete)
alter table student modify birthday char(10);
commit;
<결과>
/student_insert | 값 넣고 등록 | 등록 누르면 값이 들어감. |
![]() |
![]() |
![]() |
<코드>
Menu추가해서 값 나오게 하기(s_no은 알아서 자동으로 1씩 추가)
[MenuDTO]
package com.human.springboot;
import lombok.Data;
@Data
public class MenuDTO {
String name;
int price;
String s_no;
}
[Menu.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="com.human.springboot.IDAO">
<select id="menu_list" resultType="com.human.springboot.MenuDTO">
select name,price,s_no
from menu
order by s_no asc
</select>
<insert id="menuInsert">
insert into menu values(#{param1},#{param2},snoseq.nextval)
</insert>
</mapper>
[MyController]
package com.human.springboot;
import java.util.ArrayList;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import com.human.springboot.IDAO;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/menu_insert")
public String domenuinsert() {
return "menu_insert";
}
@PostMapping("/AddMenu")
public String doAddMenu(HttpServletRequest req) {
String name=req.getParameter("name");
int price=Integer.parseInt(req.getParameter("price"));
idao.menuInsert(name,price);
return "redirect:/list_menu";
}
@GetMapping("/list_menu")
public String doListMenu(Model model) {
ArrayList<MenuDTO> alMenu=idao.menu_list();
model.addAttribute("menus",alMenu);
return "list_menu";
}
}
[IDAO]
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<MenuDTO> menu_list();
void menuInsert(String x1,int x2);
}
[list_menu]
<%@ 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>Menu_List</title>
</head>
<body>
<table>
<tr><th>메뉴명</th><th>가격</th><th>시리얼넘버</th></tr>
<c:forEach items="${menus }" var="menu">
<tr><td>${menu.name }</td>
<td>${menu.price }</td>
<td>${menu.s_no }</td></tr>
</c:forEach>
<tr><td colspan=3 align=center><a href="/menu_insert">추가</a></td></tr>
</table>
</body>
</html>
[menu_insert]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Menu Insert</title>
</head>
<style>
table { border-collapse:collapsed;}
td{ border: 1px solid black}
</style>
<body>
<form action="/AddMenu" method="post">
<table>
<tr><td>메뉴명</td><td><input type=text name=name></td></tr>
<tr><td>가격</td><td><input type=number name=price></td></tr>
<tr><td align=center><a href='/list'>보기</a></td>
<td align=center><input type=submit value='등록'>
<input type=reset value='지우기'></td></tr>
</table>
</form>
</body>
</html>
<결과>
/menu_insert | /list_menu 등록했을때 |
![]() |
![]() |
[list_menu를 menu_insert에 합쳐서 나오게 하기]
<코드>
list_menu에 있던 코드를 menu_insert에 복사하고 mycontroller 바꾸기 = list_menu는 삭제
[menu_insert]
<%@ 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>Menu Insert</title>
</head>
<style>
table { border-collapse:collapsed;}
td{ border: 1px solid black;}
</style>
<body>
<form action="/AddMenu" method="post">
<table>
<tr><td>메뉴명</td><td><input type=text name=name></td></tr>
<tr><td>가격</td><td><input type=number name=price></td></tr>
<tr><td align=center><a href='/list'>보기</a></td>
<td align=center><input type=submit value='등록'>
<input type=reset value='지우기'></td></tr>
</table>
</form>
<br>
//list_menu 코드를 추가
<table>
<tr><th>메뉴명</th><th>가격</th><th>시리얼넘버</th></tr>
<c:forEach items="${menus }" var="menu">
<tr><td>${menu.name }</td>
<td>${menu.price }</td>
<td>${menu.s_no }</td>
</tr>
</c:forEach>
<tr><td colspan=3 align=center><a href="/menu_insert">추가</a></td></tr>
</table>
</body>
</html>
[mycontroller]
package com.human.springboot;
import java.util.ArrayList;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import com.human.springboot.IDAO;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
//list_menu부분 삭제
@Autowired
private IDAO idao;
@GetMapping("/menu_insert")
public String domenuinsert(Model model) {
model.addAttribute("menus",idao.menu_list());
return "menu_insert";
}
@PostMapping("/AddMenu")
public String doAddMenu(HttpServletRequest req) {
String name=req.getParameter("name");
int price=Integer.parseInt(req.getParameter("price"));
idao.menuInsert(name,price);
return "redirect:/menu_insert";
}
}
<결과>
[메뉴를 update 한다]
<menu_insert>
<%@ 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>Menu Insert</title>
</head>
<style>
table { border-collapse:collapsed;}
td{ border: 1px solid black;}
</style>
<body>
<form action="/AddMenu" method="post" id=frmAdd>
<table>
<tr><td>메뉴명</td><td><input type=text name=name id=name><input type=text name=s_no id=s_no></td></tr>
<tr><td>가격</td><td><input type=number name=price id=price></td></tr>
<tr><td align=center><a href='/menu_insert'>보기</a></td>
<td align=center><input type=submit value='등록'>
<input type=reset value='지우기'></td></tr>
</table>
</form>
<br>
<table id=tblMenu>
<tr><th>번호</th><th>메뉴명</th><th>가격</th></tr>
<c:forEach items="${menus }" var="menu">
<tr><td>${menu.s_no }</td>
<td>${menu.name }</td>
<td>${menu.price }</td>
</tr>
</c:forEach>
<tr><td colspan=3 align=center><a href="/menu_insert">추가</a></td></tr>
</table>
</body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
//메뉴목록을 클릭하면 값이 들어간다.
$(document)
.on('click','#tblMenu tr',function(){
let s_no=$(this).find('td:eq(0)').text();
$('#s_no').val(s_no);
let name=$(this).find('td:eq(1)').text();
$('#name').val(name);
let price=$(this).find('td:eq(2)').text();
$('#price').val(price);
return false;
})
//메뉴명과 가격을 넣지 않았을때 조건
.on('submit','#frmAdd',function(){
if($('#name').val()==''){
alert('메뉴명을 입력하십시오');
return false;
}
if($('#price').val()==''){
alert('가격을 입력하십시오');
return false;
}
return true;
})
</script>
</html>
<mycontroller>
package com.human.springboot;
import java.util.ArrayList;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import com.human.springboot.IDAO;
import jakarta.servlet.http.HttpServletRequest;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/menu_insert")
public String domenuinsert(Model model) {
model.addAttribute("menus",idao.menu_list());
return "menu_insert";
}
@PostMapping("/AddMenu")
public String doAddMenu(HttpServletRequest req) {
String s_no=req.getParameter("s_no");
String name=req.getParameter("name");
int price=Integer.parseInt(req.getParameter("price"));
//if=add else=update 조건 만들기
if(s_no==null||s_no.equals("")) {
idao.menuInsert(name,price);
} else {
idao.updateMenu(name,price,Integer.parseInt(s_no));
}
return "redirect:/menu_insert";
}
}
<IDAO>
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<MenuDTO> menu_list();
void menuInsert(String x1,int x2);
void updateMenu(String x1, int x2, int x3);
}
<Menu.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="com.human.springboot.IDAO">
<select id="menu_list" resultType="com.human.springboot.MenuDTO">
select name,price,s_no
from menu
order by s_no asc
</select>
<insert id="menuInsert">
insert into menu values(#{param1},#{param2},snoseq.nextval)
</insert>
<update id="updateMenu">
update menu set name=#{param1}, price=#{param2} where s_no=#{param3}
</update>
</mapper>
<결과>
메뉴명을 입력하지 않았을 때 | ![]() |
가격을 입력하지 않았을 때 | ![]() |
라떼를 눌렀을 때 | ![]() |
가격 바꿀때 1 3500짜리를 3200원으로 바꿔보기 |
![]() |
레몬차 가격 바꾸고 등록 눌렀을 때 가격이 바뀐걸 볼 수 있다. |
![]() |

흐어어어어어
728x90