Lekce 8
Repository použité při lekci
Postup stažení: nejprve si ze šablony v mém repository (tlačítkem Use this template vpravo nahoře) vytvoř repository na svém účtu na GitHubu. Následně naklonuješ repository do svého počítače. Pokud máš v prohlížeči nainstalovaný doplněk JetBrains Toolbox, stačí na GitHubu kliknout na tlačítko Clone in IntelliJ IDEA a pokračovat dle pokynů.
Pokud doplněk nemáš, na úvodní obrazovce IntelliJ IDEA zvol tlačítko Get from VCS, následně v nabídce vlevo zvol GitHub a v přehledu projektů vyber projekt, který chceš klonovat.
Osnova
- co je databáze a relační databáze
- práce s databází v IntelliJ Idea
- přístup ze Springu do databáze
Tahák
- anotace
@Repository
– speciální služba určená pro přístup k datům, např. k databázi - anotace
@Autowired
– označuje konstruktor, který Spring použije pro vytvření objektu a dosazení požadovaných parametrů - anotace
@Id
– v entitě označuje primární identifikátor entity - anotace
@GeneratedValue(strategy = GenerationType.IDENTITY)
– v entitě označuje hodnotu, která je automaticky generována; v tomto případě je generována databází - rozhraní
CrudRepository<Entity, ID>
– repository, které automaticky implementuje základní operace create, read, update, delete
Spring
@Controller
– třída s metodami, které obsluhují požadavky klienta@SpringBootApplication
– označení výchozí třídy Spring Boot aplikace. Spring Boot následně prohledává package, ve kterém je umístěna tato třída, a všechny package pod ním (na libovolné úrovni zanoření) a zpracuje všechny třídy označené některou z anotací, které Spring zná – např.@Controller
,@Service
,@Repository
apod.@GetMapping
,@PostMapping
a další,@RequestMapping
– anotace označující celý kontroler nebo metodu a určující, jaké požadavky bude zpracovávat (např. cesta, metoda, typ dat požadavku nebo odpovědi)- parametry součástí cesty:
GetMapping("/clanek/{id}")
,@PathVariable int id
ModelAndView
– přepravka, která obsahuje název view a data modelureturn "redirect:/cil";
- anotace
@ModelAttribute
,@Valid
- anotace
@NotNull
,@NotEmpty
,@NotBlank
,@Min
,@Max
,@Email
, … - anotace
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
- anotace
@Autowired
,@Service
,@Controller
- třída
BindingResult
Odkazy
- Java SE 21 Javadoc – dokumentace všech tříd, které jsou součástí základní Javy ve verzi 21.
- Dokumentace Spring Boot – odsud je anotace
@SpringBootApplication
a třídaSpringApplication
. - Dokumentace Spring Framework – odsud jsou anotace
@Controller
,@GetRequest
a třídaModelAndView
. - Dokumentace Freemarker – šablonovací systém pro HTML použitý v projektu.
- Dokumentace HTML formulářů
- Dokumentace Hibernate Validator
- Databáze H2
Úkol
Zadání úkolu: Úkol 6