Název: Kompletní implementace aplikační vrstvy
Počet bodů: 4
Způsob řešení: Úlohu řeší oba členové týmu dohromady.
JdbcTemplate
z modulu spring-jdbc, QueryRunner
z commons-dbutils, nebo zda si vystačíte s čistým JDBC. java.sql.Connection
). Pro získání připojení k databázi použijte výhradně DataSource
.git clone https://github.com/petradamek/PV168.git
git pull
org.apache.derby.jdbc.EmbeddedDataSource
(viz např. metoda prepareDataSource() ve třídě GraveManagerImplTest
). Alternativně můžete použít HikariDataSource z knihovny HikariCP, nebo BasicDataSource z knihoven Commons DBCP nebo Tomcat DBCP.java.time
, například LocalDate
, LocalTime
nebo LocalDateTime
(viz např. Body
a BodyManagerImpl
). Pokud byste používali java.util.Date
a java.sql.Timestamp
, dejte si pozor na kombinování těchto hodnot ve stejné kolekci. Metoda Timestamp.equals(java.lang.Object)
nedodržuje obecný kontrakt metody Object.equals(java.lang.Object)
a není symetrická — při porovnávání s hodnotou typu Date
vrací vždy false, i když se jedná o stejný čas. Vysvětlení je uvedeno v dokumentaci třídy java.sql.Timestamp
.Clock
, kterou do příslušné komponenty nainjektujete v konstruktoru. V testech pak použijte mock instanci třídy Clock, která bude vracet předem definovaný čas (viz např. commit 647cabc5 ve vzorovém příkladu).