대충 이런 구조
jpa와 mysql connector 추가
application.properties에 세션 사용자 로그인 비밀번호 입력
entity 클래스 파일.
사실 이전 코드 복붙함
dao 역할을 해 줄 repository 인터페이스
딱히 구현 메서드는 작성하지 않는다.
dao를 시키는 service 인터페이스
이전 코드 복붙함
package com.Seol.springboot.thymeleafdemo.service;
import java.util.List;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.Seol.springboot.thymeleafdemo.dao.EmployeeRepository;
import com.Seol.springboot.thymeleafdemo.entity.Employee;
@Service
public class EmployeeServiceImpl implements EmployeeService {
private EmployeeRepository employeeRepository;
@Autowired
public EmployeeServiceImpl( EmployeeRepository theEmployeeRepository) {
employeeRepository = theEmployeeRepository;
}
@Override
public List<Employee> findAll() {
return employeeRepository.findAll();
}
@Override
public Employee findById(int theId) {
Optional<Employee> result = employeeRepository.findById(theId);
Employee theEmployee = null;
if (result.isPresent()) {
theEmployee = result.get();
}
else {
throw new RuntimeException("did not find employee id - " + theId);
}
return theEmployee;
}
@Override
public void save(Employee theEmployee) {
employeeRepository.save(theEmployee);
}
@Override
public void deleteById(int theId) {
employeeRepository.deleteById(theId);
}
}
service 인터페이스 구현
메모리에 생성하여 사용하는 이전 컨트롤러는 삭제하고
서비스를 이용하는 컨트롤러
index.html을 만들어서 localhost로 접속하면 employees/list 로 redirect 하게 만들자
src-main-resources-static 경로에 index.html을 만들고
이런 내용을 넣어주면 경로 안쓰고 localhost:8080만 넣어줘도 redirect된다.
사전 작업
thymeleaf expression
자세한 설명은
Post/Redirect/Get pattern
자세한 설명
thymeleaf 위치 경로를 바꾸자
list view 반환값도 바꾼다.
데이터 추가
이렇게만 해도 last name으로 순서로 나열한다.
메서드 이름으로 쿼리를 실행하는 spring data jpa 기능이다.
query method 자세한 내용은 다음을 보자
Spring Data JPA - Reference Documentation
서비스에서 메서드 수정
데이터 업데이트
1. 업데이트 버튼 만들기
2. form 만들기
3. form 데이터 처리
update를 통해서 form 페이지에 가면 값이 있는 객체가 보내져서 id 값이 있다.
이것을 save로 보내면 id값이 있으니 update 기능 실행
add를 통해서 form 페이지에 가면 값이 없는 빈 객체가 보내지고 id 값이 없다.
이것을 save로 가면 id값이 없으니 add 기능 실행
삭제 기능
1. 삭제 버튼을 넣는다.
2. 컨트롤러에 삭제를 추가한다.
뷰에 보낼 때 모델 바구니에다가 객체에 이름표 붙여 담아 보내고
뷰에서 컨트롤러로 올 때 파라미터 또는 모델에 담아서 보낸다.
'컴퓨터공학 > Spring & Hibernate' 카테고리의 다른 글
Spring> Spring Boot> Thymeleaf warm up (0) | 2021.11.07 |
---|---|
Spring> Spring Boot> Spring Data REST (0) | 2021.10.31 |
Spring> Spring Boot> Spring Data JPA (0) | 2021.10.30 |
Spring 내가 만든 클래스를 빈으로 등록하여 사용하는 법 (0) | 2021.10.25 |
Spring> Spring Boot> REST CRUD API (Standard JPA) (0) | 2021.10.24 |