| ... | ... | @@ -90,4 +90,30 @@ Nebo JPR - Java Persistent API (Hibernate je referenční implementace JPA). My |
|
|
|
|
|
|
|
## Repository demo
|
|
|
|
|
|
|
|
Přidáme si vrstvu data a nějakou databázi. Nepotřebujeme mít nainstalovanou databázi. Buď si ji nainstalujeme nebo ji máme embedded. Nový projekt - DevTools, JPA, H2. Otevřeme build.gradle. |
|
|
|
Přidáme si vrstvu data a nějakou databázi. Nepotřebujeme mít nainstalovanou databázi. Buď si ji nainstalujeme nebo ji máme embedded. Nový projekt - DevTools, JPA, H2. Otevřeme build.gradle - přibyl runtimeOnly h2 database - jen při běhu. Přibyl taky plugin do springu - implementace DB. Chybí verze knihoven - Springboot má u sebe takové knihovny, aby se hezky domluvili. Vezmeme si verzi SpringBootu a on se o to postará. New package car a class Car - bude mít spz a id, rok výroby. Když použiju primitivní typ - řeknu Hibernate - nesmí tam být nul, u objektu ano. U id - nechám generování na DB. Musím Javě říct že se objekt ukládá do DB - anotace @Entity javax.persistence (ekvivalent modelu). K id dám @Id a @GeneratedValue - vygeneruj mi. Potřebuju ještě gettery settery - setId nechci. Musí tam být bezparametrický konstruktor. Vygeneruji si toString. Máme entitu.
|
|
|
|
|
|
|
|
Dále potřebuji vygenerovat něco co označím jako Repository - interface CarRepository extends JpaRepository<Car, Long> - co za typ a co mám za ID. Spojovací tabulky se generují samy.
|
|
|
|
|
|
|
|
Do RepositoryApplication - vytvořím bean CommandLineRunner
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
public CommandLineRunner runner(CarRepository carRepository){
|
|
|
|
return new CommandLineRunner() {
|
|
|
|
@Override
|
|
|
|
public void run(String... args) throws Exception {
|
|
|
|
for (int i=0; i<10; i++){
|
|
|
|
Car car = new Car();
|
|
|
|
car.setZpz("JAVA: " + Integer.toBinaryString(i));
|
|
|
|
car.setYear(2000 +i);
|
|
|
|
carRepository.save(car);
|
|
|
|
}
|
|
|
|
System.out.println("Aut v db: " + carRepository.count());
|
|
|
|
System.out.println("Auto: " + carRepository.getOne(3L));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Resources/application.properties - přístup
|
|
|
|
spring.datasource.url=jdbc:h2:file:./db/main;DB_CLOSE_ON_EXIT=FALSE;
|
|
|
|
"připoj se přes jdbc k DB která ukládá věci do určeného souboru a nezavřít se!" |
|
|
\ No newline at end of file |