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. 입력양식 화면에서 데이터 입력 후 목록에서 확인
* 무결성 제약조건, 입력값 길이등에 따라 입력이 되지 않을 수 있음
|