나는 도움이 필요해. JPA를 사용하여 웹 애플리케이션을 작성하고 있습니다. YouTube와 다른 페이지의 예제로 만듭니다. 나는 많이 만들지 만 내 신청에서 한 가지를 보려면 도움이 필요합니다. 미용실 응용 프로그램이기 때문에 고객과 약속 날짜도 있습니다.
이것은 InteliJ https://i.stack.imgur.com/HlDXK.png 에서 내 응용 프로그램의 모습입니다. 이름이 "Patryk"인 클라이언트를 표시하고 싶습니다.
다음은 model.klienci의 코드입니다.
package figura.zaklad_fryzjerski_v3.model;
import javax.persistence.*;
@Entity
@Table(name = "klienci")
public class Klienci {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_klienta")
private Integer id_klienta;
@Column(name = "imie")
private String imieKlienta;
@Column(name = "nazwisko")
private String nazwiskoKlienta;
@Column(name = "nr_telefonu_klienta")
private Integer nrTelefonuKlienta;
@Column(name = "adres_email")
private String adresEmailKlienta;
getters and setters
다음은 저장소의 코드입니다.
package figura.zaklad_fryzjerski_v3.repository;
import figura.zaklad_fryzjerski_v3.model.Klienci;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface KlienciRepository extends JpaRepository<Klienci, Integer> {
}
다음은 service.KlienciService의 코드입니다.
package figura.zaklad_fryzjerski_v3.service.klienci;
import figura.zaklad_fryzjerski_v3.model.Klienci;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface KlienciService {
List<Klienci> getAllKlieci();
void saveKlienci(Klienci klienci);
Klienci getKlienciById(Integer id_klienta);
void usunKlientaById(Integer id_klienta);
Page<Klienci> findPaginated(int pageNo, int pageSize);
}
다음은 service.KlienciServiceImpl의 코드입니다.
package figura.zaklad_fryzjerski_v3.service.klienci;
import figura.zaklad_fryzjerski_v3.model.Klienci;
import figura.zaklad_fryzjerski_v3.repository.KlienciRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
@Service
//@Transactional
public class KlienciServiceImpl implements KlienciService{
@Autowired
private KlienciRepository klienciRepository;
@Override
public List<Klienci> getAllKlieci() {
return klienciRepository.findAll();
}
@Override
public void saveKlienci(Klienci klienci){
this.klienciRepository.save(klienci);
}
@Override
public Klienci getKlienciById(Integer id_klienta) {
Optional<Klienci> optional = klienciRepository.findById(id_klienta);
Klienci klienci = null;
if(optional.isPresent()){
klienci = optional.get();
}else{
throw new RuntimeException("Klient nie znaleziony po id :: "+ id_klienta);
}
return klienci;
}
@Override
public void usunKlientaById(Integer id_klienta){
this.klienciRepository.deleteById(id_klienta);
}
@Override
public Page<Klienci> findPaginated(int pageNo, int pageSize) {
Pageable pageable = PageRequest.of(pageNo - 1,pageSize);
return this.klienciRepository.findAll(pageable);
}
}
그리고 여기에 내 응용 프로그램의 페이지에 항목을 표시하는 데 사용하는 컨트롤러를 포함합니다.
//klient wyświetlanie listy klientów
@Autowired
public KlienciService klienciService;
@GetMapping("/klient_baza")
public String getKlient_baza(Model model){
model.addAttribute("listaKlientow",klienciService.getAllKlieci());
return findPaginated(1, model);
}
//Dodawanie klientów do bazy danych
@GetMapping("/klient_dodaj")
public String getKlient_dodaj(Model model){
Klienci klienci = new Klienci();
model.addAttribute("klienci",klienci);
return "/klient/klient_dodaj";
}
//zapisywanie klientów do bazy danych
@PostMapping("/klientZapisz")
public String saveKlient(@ModelAttribute("klienci") Klienci klienci, Model model){
klienciService.saveKlienci(klienci);
model.addAttribute("typ", "dodanie_rekordu");
model.addAttribute("sukces", "Pomyślnie dodano klienta");
return getKlient_baza(model);
}
//strona z edytowaniem klienta
@GetMapping("/klient_dodaj/{id_klienta}")
public String showFormForUpdate(@PathVariable(value = "id_klienta") Integer id_klienta, Model model) {
Klienci klienci = klienciService.getKlienciById(id_klienta);
model.addAttribute("klienci", klienci);
model.addAttribute("edycja", "true");
return "/klient/klient_dodaj";
}
//usuwanie klienta z bazy danych
@GetMapping("/usun_klienta/{id_klienta}")
public String usunKlienta(@PathVariable(value = "id_klienta")Integer id_klienta, Model model){
model.addAttribute("typ","usuniecie_rekordu");
model.addAttribute("sukces","Pomyślnie usunięto klienta");
this.klienciService.usunKlientaById(id_klienta);
return getKlient_baza(model);
}
//podział na strony
@GetMapping("/klient_baza/{pageNo}")
public String findPaginated(@PathVariable(value = "pageNo")int pageNo, Model model){
int pageSize = 10;
Page<Klienci> page = klienciService.findPaginated(pageNo,pageSize);
List<Klienci> klienciList = page.getContent();
model.addAttribute("aktualnaStrona", pageNo);
model.addAttribute("wszystkieStrony", page.getTotalPages());
model.addAttribute("total", page.getTotalElements());
model.addAttribute("listaKlientow", klienciList);
return "/klient/klient_baza";
}
여기에 추가하는 방법 QUERY METHOD 는 @Query를 사용하여 이름이 "Patryk"인이 클라이언트 만 표시합니까?