내용

글번호 584
작성자 heojk
작성일 2017-02-12 23:38:44
제목 [실습] Employees 테이블 데이터 관리하기 예제 4(입력)
내용 1. 입력 기능을 인터페이스에 선언 //src/main/java/kr/co/javaspecialist/hr/model/IEmpRepository.java 에 추가
int insertEmp(EmpVO emp);
2. 입력 기능을 클래스에 구현 //src/main/java/kr/co/javaspecialist/hr/model/EmpRepository.java 에 추가
public int insertEmp(EmpVO emp) {
    String sql = "INSERT INTO EMPLOYEES (EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE_NUMBER, "
    + " HIRE_DATE, JOB_ID, SALARY, COMMISSION_PCT, MANAGER_ID, DEPARTMENT_ID) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    return jdbcTemplate.update(sql, emp.getEmployeeId(), emp.getFirstName(), emp.getLastName(), emp.getEmail(), emp.getPhoneNumber(), emp.getHireDate(), emp.getJobId(), emp.getSalary(), emp.getCommissionPct(), emp.getManagerId(), emp.getDepartmentId());
}
3. 입력 처리 컨트롤러 구현(입력을 위한 폼 요청과 입력처리를 위한 기능을 요청방식에 따라 다르게 처리하도록 구현함) //src/main/java/kr/co/javaspecialist/hr/web/EmpController.java 에 추가
@RequestMapping(value="/insert", method=RequestMethod.GET)
public String insert(Model model) {
    return "/emp/details";
}

@RequestMapping(value="/insert", method=RequestMethod.POST)
public String insert(EmpVO emp, RedirectAttributes redirectAttrs) {
    try {
        empRepository.insertEmp(emp);
    }catch(RuntimeException e) {
        redirectAttrs.addFlashAttribute("message", e.getMessage());
    }
    return "redirect:/emp/list";
}
4. /emp/insert 로 입력 양식 요청 5. 입력양식 화면에서 데이터 입력 후 목록에서 확인 * 무결성 제약조건, 입력값 길이등에 따라 입력이 되지 않을 수 있음