develope_kkyu

[Spring] oracle db와 연동하여 객실 종류 입력하기 본문

JAVA/Java EE(Spring)

[Spring] oracle db와 연동하여 객실 종류 입력하기

developekkyu37 2022. 12. 29. 17:12
728x90

jsp, mybatis 등을 활용하여 객실 종류 입력하는 페이지 만들기

  • 기능
    • Type Name에 방 종류 이름을 입력하면 기존 테이블에 다음 번호와 이름이 입력된다.
    • 마우스로 테이블 안에 방 종류 선택 후 삭제 버튼 시 테이블과 db에서 그 방 종류 삭제
    • 비우기 클릭 시 리셋

roomtype.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>RoomType</title>
</head>
<body>
<table border=1 id=tblList>
<tr><th>Type Number</th><th>Type Name</th></tr>
<c:forEach var="roomtype" items="${rt}">
	<tr><td>${roomtype.typenum}</td><td>${roomtype.typename}</td></tr>
</c:forEach>
</table><br>
<form action="/controlRoomType" id=frmControl>
<input type=hidden id=optype name=optype value='insert'>
<table border=1>
	<tr><td>Type Number</td><td><input type=text name=typenum id=typenum readonly></td></tr>
	<tr><td>Type Name</td><td><input type=text name=typename id=typename></td></tr>
	<tr><td colspan=2 align=center>
		<input type=button value='등록' id=btnAddNew>
		<input type=button value='삭제' id=btnDelete>
		<input type=button value='비우기' id=btnReset>
		</td></tr>
</table>
</form>
</body>
<script src='https://code.jquery.com/jquery-3.4.1.js'></script>
<script>
$(document)
.on('click', '#tblList tr',function(){
	let typenum = $(this).find('td:eq(0)').text();
	let typename = $(this).find('td:eq(1)').text();
	$('#typenum').val(typenum);
	$('#typename').val(typename);
	$('#optype').val('update');
	return false;
})
.on('click','#btnDelete',function(){
	if($('#typenum').val()=='' || $('#typename').val()=='') return false;
	$('#optype').val('delete');
	$('#frmControl').submit();
})
.on('click','#btnAddNew',function(){
	if($('#typename').val()=='') return false;
	$('#frmControl').submit();
})
.on('click','#btnReset',function(){
	$('#typenum,#typename').val('');
	$('#optype').val('insert');
	return false;
})
</script>
</html>

My controller.java - 서버

package com.human.springboot;

import java.util.ArrayList;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
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.ResponseBody;

import jakarta.servlet.http.HttpServletRequest;

@Controller
public class MyController {
	@Autowired
	private empDAO emp;
	
	@RequestMapping("/roomtype")
	public String getList(Model model) {
		ArrayList<RoomtypeDTO> rdto = emp.listRoomType();
		model.addAttribute("rt", rdto);
		return "roomtype";
	}

	@RequestMapping("/controlRoomType")
	public String doControlRoomType(HttpServletRequest req) {
		if(req.getParameter("optype").equals("delete")) {
			int typenum = Integer.parseInt(req.getParameter("typenum"));
			emp.deleteRoomType(typenum);	
		} else if(req.getParameter("optype").equals("insert")) {
			String typename = req.getParameter("typename");
			emp.insertRoomType(typename);
		} else if(req.getParameter("optype").equals("update")) {
			String typename = req.getParameter("typename");
			int typenum = Integer.parseInt(req.getParameter("typenum"));
			emp.updateRoomType(typename, typenum);
		}
		return "redirect:/roomtype";	
	}
}

empDAO.java

package com.human.springboot;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface empDAO {
	ArrayList<RoomtypeDTO> listRoomType();
	void insertRoomType(String typename);
	void deleteRoomType(int typenum);
	void updateRoomType(String tname, int tnum);
}

RoomtypeDTO.java

package com.human.springboot;

public class RoomtypeDTO {
	private int typenum;
	private String typename;
	
	public int getTypenum() {
		return typenum;
	}
	public void setTypenum(int typenum) {
		this.typenum = typenum;
	}
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}

}

Emp.xml - db

<?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.empDAO">
<select id="listRoomType" resultType="com.human.springboot.RoomtypeDTO">
	SELECT typenum, typename from roomtype order by typenum
</select>
<insert id="insertRoomType">
		insert into roomtype values(seq_roomtype2.nextval,#{param1},null)
</insert>
<delete id="deleteRoomType">
	delete from roomtype where typenum = #{param1}
</delete>
<update id="updateRoomType">
	update roomtype set typename=#{param1} where typenum=#{param2}
</update>
</mapper>

--

실행 화면

 

 

728x90