testtest

5 minute read

testtest

코드

package com.example.manage.controller;

import com.example.manage.dao.EmpDAO;
import com.example.manage.vo.EmpVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@Controller
@RequestMapping("/emp")
public class EmpController {
    private EmpDAO empDAO;
    @Autowired
    public EmpController(EmpDAO empDAO){
        this.empDAO = empDAO;
    }

    @GetMapping("/")
    public ModelAndView listEmp(){
        List<EmpVO> list = empDAO.listAll();
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/search/empno")
    public ModelAndView searchNo(int empno){
        List<EmpVO> list = empDAO.searchEmpno(empno);
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
            mav.addObject("button","메인으로");
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/search/ename")
    public ModelAndView searchName(String ename){
        List<EmpVO> list = empDAO.searchEname(ename);
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
            mav.addObject("button","메인으로");
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/search/tel")
    public ModelAndView searchTel(String tel){
        List<EmpVO> list = empDAO.searchTel(tel);
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
            mav.addObject("button","메인으로");
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/search/rank")
    public ModelAndView searchRank(String rank){
        List<EmpVO> list = empDAO.searchRank(rank);
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
            mav.addObject("button","메인으로");
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/search/email")
    public ModelAndView searchEmail(String email){
        List<EmpVO> list = empDAO.searchEmail(email);
        ModelAndView mav = new ModelAndView();
        if(list.size() != 0){
            mav.addObject("list",list);
            mav.addObject("button","메인으로");
        }
        else{
            mav.addObject("msg","결과가 없습니다.");
        }
        mav.setViewName("empView");
        return mav;
    }
    @PostMapping("/insert")
    public ModelAndView insert(EmpVO vo) {
        boolean result = empDAO.insertEmp(vo);
        ModelAndView mav = new ModelAndView();
        if (result) {
            mav.addObject("list", empDAO.listAll());
        } else {
            mav.addObject("msg", "글 작성을 처리하는 동안 오류 발생");
        }
        mav.setViewName("empView");
        return mav;
    }
    @GetMapping("/delete")
    public ModelAndView delete(int empno) {
        boolean result = empDAO.deleteEmp(empno);
        ModelAndView mav = new ModelAndView();
        if (result) {
            mav.addObject("list", empDAO.listAll());
        } else {
            mav.addObject("msg", "삭제를 처리하는 동안 오류 발생");
        }
        mav.setViewName("empView");
        return mav;
    }
    @PostMapping("/update")
    public ModelAndView update(EmpVO vo) {
        boolean result = empDAO.updateEmp(vo);
        ModelAndView mav = new ModelAndView();
        if (result) {
            mav.addObject("list", empDAO.listAll());
        } else {
            mav.addObject("msg", "글 수정을 처리하는 동안 오류 발생");
        }
        mav.setViewName("empView");
        return mav;
    }
}



package com.example.manage.dao;

import com.example.manage.vo.EmpVO;
import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class EmpDAO {
    @Autowired
    SqlSession session = null;
    public List<EmpVO> listAll(){
        String statement = "resource.EmpMapper.selectEmp";
        List<EmpVO> list = session.selectList(statement);
        return list;
    }
    public List<EmpVO> searchEmpno(int empno){
        String staement = "resource.EmpMapper.selectByEmpno";
        List<EmpVO> list = session.selectList(staement, empno);
        return list;
    }
    public List<EmpVO> searchEname(String ename){
        String staement = "resource.EmpMapper.selectByEname";
        List<EmpVO> list = session.selectList(staement, ename);
        return list;
    }
    public List<EmpVO> searchTel(String tel){
        String staement = "resource.EmpMapper.selectByETel";
        List<EmpVO> list = session.selectList(staement, tel);
        return list;
    }
    public List<EmpVO> searchRank(String rank){
        String staement = "resource.EmpMapper.selectByRank";
        List<EmpVO> list = session.selectList(staement, rank);
        return list;
    }
    public List<EmpVO> searchEmail(String email){
        String staement = "resource.EmpMapper.selectByEmail";
        List<EmpVO> list = session.selectList(staement, email);
        return list;
    }
    public boolean insertEmp(EmpVO vo) {
        boolean result = true;
        String statement = "resource.EmpMapper.insertEmp";
        if(session.insert(statement, vo) != 1)
            result = false;
        return result;
    }

    public boolean deleteEmp(int empno) {
        boolean result = true;
        String statement = "resource.EmpMapper.deleteEmp";
        if(session.delete(statement, empno) != 1)
            result = false;
        return result;
    }

    public boolean updateEmp(EmpVO vo) {
        boolean result = true;
        String statement = "resource.EmpMapper.updateEmp";
        if(session.update(statement, vo) != 1)
            result = false;
        return result;
    }
}



package com.example.manage.vo;

public class EmpVO {
    private int empno;
    private String ename;
    private String tel;
    private String rank;
    private String email;

    public int getEmpno() {
        return empno;
    }

    public void setEmpno(int empno) {
        this.empno = empno;
    }

    public String getEname() {
        return ename;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}



<?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="resource.EmpMapper">
    <select id="selectEmp"  resultType="vo.EmpVO">
        select * from emp
    </select>
    <select id="selectByEmpno"  resultType="vo.EmpVO" parameterType="int" >
        select empno, ename, tel, rank, email from emp where empno = #{empno}
    </select>
    <select id="selectByEname"  resultType="vo.EmpVO" parameterType="String" >
        select empno, ename, tel, rank, email from emp where ename = #{ename}
    </select>
    <select id="selectByTel"  resultType="vo.EmpVO" parameterType="String" >
        select empno, ename, tel, rank, email from emp where tel = #{tel}
    </select>
    <select id="selectByRank"  resultType="vo.EmpVO" parameterType="String" >
        select empno, ename, tel, rank, email from emp where rank = #{rank}
    </select>
    <select id="selectByEmail"  resultType="vo.EmpVO" parameterType="String" >
        select empno, ename, tel, rank, email from emp where email = #{email}
    </select>
    <insert id="insertEmp"  parameterType="vo.EmpVO">
        <selectKey resultType="int" keyProperty="empno" order="BEFORE">
            select empseq.nextval from dual
        </selectKey>
        insert into emp (empno, ename, tel, rank, email) values (#{empno}, #{ename}, #{tel}, #{email})
    </insert>
    <delete id="deleteEmp"  parameterType="_int"  >
        delete from emp where empno = #{empno}
    </delete>
    <update id="updateEmp"  parameterType="vo.EmpVO"  >
        update emp set
                           ename = #{ename},
                           tel = #{tel},
                           rank = #{rank},
                           email = #{email},
        where empno = #{empno}
    </update>
</mapper>







<%@ 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>
</head>
<body>
<c:if test="${ !empty list }" >
    <h1 onclick="location.href='/emp'">직원 관리</h1>
    <hr>
    <table>
        <c:forEach var="vo"  items="${list}">
            <tr>
                <td class="${vo.id}">${ vo.name }</td>
                <td class="${vo.id}">${ vo.title }</td>
                <td class="${vo.id}">${ vo.meetingDate }</td>
                <td><a href ="/emp/delete?id=${vo.id}"></a></td>
                <td><img onclick="displayUpdateForm('${vo.id}')"></td>
            </tr>
        </c:forEach>
    </table>
</c:if>
<c:if test="${ !empty msg }" >
    <script>
        alert('${ msg }');
    </script>
</c:if>
<hr>
<button onclick="displayDiv(1);">미팅 정보 작성</button>
<button onclick="displayDiv(2);">미팅 정보 검색</button>
<c:if test="${ button != null }" >
    <hr>
    <button onclick="location.href='/springedu/meeting'">${ button }</button>
</c:if>

<div id="write"  style="display:none">
    <hr><h2 id="divT">미팅정보 작성</h2>
    <form method = "post" action = "/springedu/meeting/insert">
        <input type="hidden" name="id" value="0">
        미팅 대상 이름 : <input id="m_name" type="text"  name="name">
        <br>
        미팅 목적 : <br>
        <textarea id="m_title"  rows="3" cols="60" name = "title" ></textarea>
        <br>
        날짜와 시간 :  <input id="m_dt" type="datetime-local" name="meetingDate">
        <br><br>
        <input type = "submit" value = "등록">
        <input type="button"  value="취소" onclick="document.getElementById('write').style.display='none';return false">
    </form>
</div>
<div id="search" style="display:none">
    <hr>
    <form method = "get" action ="/springedu/meeting/search">
        검색어 : <input type = "search" name = "keyword" >
        <input type = "submit" value = "검색">
    </form>
</div>

<script>
    function displayDiv(type) {
        if(type == 1) {
            document.getElementById("search").style.display='none';
            document.getElementById("write").style.display='block';
            document.getElementById("divT").textContent="미팅정보 작성";
            document.querySelector("#write [type=submit]").value="등록";
        } else if(type == 2) {
            document.getElementById("write").style.display='none';
            document.getElementById("search").style.display='block';
        }
    }
    function displayUpdateForm(cv) {
        var doms = document.getElementsByClassName(cv);
        document.getElementById("search").style.display='none';
        document.getElementById("write").style.display='block';
        document.getElementById("m_name").value =
            doms[0].textContent;
        document.getElementById("m_title").value =
            doms[1].textContent;
        var str = doms[2].textContent;
        var ary = str.split(/\D+/g)
        var meeting_dt = ary[0]+"-"+ary[1]+"-"+ary[2]+
            "T"+ary[3]+":"+ary[4];
        document.getElementById("m_dt").value = meeting_dt;
        document.getElementById("divT").textContent="미팅정보 수정";
        document.querySelector("#write [type=submit]").value="수정";
        document.querySelector("#write [type=hidden]").value=cv;
        document.querySelector("#write form").action="/springedu/meeting/update";
    }
</script>
</body>
</html>




server.port=8081
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.username=manage
spring.datasource.password=1234
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE




<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.13</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>manage</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>manage</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>2.3.1</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.1</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc8</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter-test</artifactId>
			<version>2.3.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>