La très grande majorité des applications va devoir conserver les données manipulées sur le long terme, on utilise pour ce faire des systèmes de gestion de bases de données. Il en existe de différents types mais celui dont on va parler dans ce cours et le plus répandu sont les bases de données relationnelles comme par exemple MySQL, Oracle, SQL Server ou PostgreSQL.
Java répond depuis longtemps à ce besoin via une API nommées JDBC que l'on peut traduire par Java Database Connectivity. C'est une API de Java Edition Standard, vous y avez accès avec un JDK / JRE.
Mais JDBC s'avère assez vite assez fastidieux à utiliser et depuis près de 20 ans on utilise également des librairies plus avancées que l'on appelle framework ORM (Object Relational Mapping) et dont le meilleur exemple est sans conteste Hibernate de RedHat.
Hibernate est un framework ORM parmi d'autres, chacun ayant ses spécificités, mais la plupart sont compatibles avec une norme qui permet l'interchangeabilité des framework ORM nommée JPA (Java Persistence API) et qui fait partie intégrante de Java EE / Jakarta EE.
Dans ce cours nous allons introduire les technologies JDBC, Hibernate et JPA mais ce n'est pas tout. Nous allons également voir comment adapter l'architecture d'une application Java de bureau ou une application Web pour tenir compte de ces technologies.
Nous verrons la notion de couche logicielle avec la couche dite "Repository", le problème de la gestion transactionnelle et ses conséquences sur le modèle Objet avec le Lazy loading et les Data Transfer Object (DTO).
Comme toujours ce cours fera la part belle aux travaux pratiques avec un atelier fil rouge, des quizz et des exercices complémentaires.