L’accès aux bases de données
- Historique de l’accès aux données en Java, présentation de JDBC
- Correspondance entre types SQL et Java
- Rôle du driver
- L’API JDBC, Connection, Statement, ResultSet
- Requêtes paramétrées avec PreparedStatement
- Appel de procédure stockées avec CallableStatement
- Utilisation de l’API RowSet
- Gestion des transactions
- Notion de pool de connexions
- Problématique de l’ORM et introduction à JPA
Accès complet au système de gestion de fichiers avec Nio.2
- Les nouvelles classes java.nio.file.Files et java.nio.file.Path
- Gestion des liens symboliques
- Manipulation de chemins, parcours de répertoires et d’arborescences
- Accès aux attributs d’un fichier
- Notification des changements dans un répertoire
- Gestion des archives Jar/zip
- Entrées/sorties asynchrones
Expressions Lambda, références de méthodes
- Comprendre les principes de la programmation fonctionnelle
- Syntaxe des classes internes anonymes
- Notion d’interface fonctionnelle
- Anatomie d’une expression Lambda
- Simplifier les expressions lambdas avec les références de méthodes
- Mise en œuvre des interfaces fonctionnelles : Consumer, Supplier, Predicate, Function
- Gestion des exceptions
Mise en œuvre de l’API Stream pour la manipulation de flux de données
- Objectif de l’API Stream
- Obtention et sortie d’un stream
- Opérations intermédiaires et terminales
- Mise en œuvre des méthodes forEach, map, filter, findFirst
- Principe de l’évaluation paresseuse
- Intérêt de la classe Optional
- Réductions avec reduce et collect
- Interface Collector et classe Collectors
- Autres méthodes : limit, skip, sorted, min, max, distinct, allMatch, anyMatch, noneMatch, count
- Streams sur fichiers et répertoires
- Streams parallèles, précautions d’usage
Le système de modules
- Principe et intérêt des modules
- Format du descripteur de module : les directives
- Utilisation des modules
- Gestion des dépendances entre modules, la commande jdeps
- Intérêt du module-path
- Notions de modules anonymes et modules automatiques
- Mise en œuvre de services
- Modularité du JDK
- Nouvelle organisation de la documentation des API Java
- Fichiers jar modulaires
Autres nouveautés de Java 11 à 17
- Évolution du switch
- Blocs de texte
- Rôle et intérêt des records
- Classes et interfaces scellées
- La commande jlink
- La commande jpackage
Introduction à l’outil Maven et aux frameworks JUnit, Hibernate, Spring
- Rôle et intérêt de Maven
- Structure d’un projet Maven
- Constitution d’un POM
- Résolution des dépendances
- Comparaison framework/librairie
- Présentation de JUnit pour les tests unitaires
- Présentation de Hibernate/JPA pour l’accès aux bases de données relationnelles
- Présentation de Spring pour l’injection de dépendances
Débugging d’applications
- Rôle du débugging
- Présentation de l’outil de débugging dans l’IDE
- Notions de breakpoint, conditional breakpoint, watchpoint, step filtering
- Exécution en pas à pas, observation des variables, modification
- Suspension et reprise de l’exécution d’un thread
Pour faciliter l’acquisition de la compétence et sa transférabilité sur le poste de travail, trois différents contenus sont mis à disposition de l’apprenant sur son espace dédié, en complément de sa formation :
Un parcours e-learning : Réalisé avant ou après une session avec un formateur, chaque module correspond à une fonctionnalité à maîtriser du programme. L’ensemble des modules constitue un parcours qui renforce l’ancrage.
Des tutoriels de courte durée : Selon la logique du support formatif, ces vidéos aident l’apprenant confronté à une difficulté à la résoudre en toute autonomie 24/7 mais aussi à acquérir la fonctionnalité ou l’usage concerné.
Des vidéos d’exercices : En reprenant pas à pas chaque étape de la correction, l’apprenant progresse à travers une illustration pratique de la mise en œuvre de la fonctionnalité ou de l’usage.
Ces contenus e-formation sont disponibles dans l’espace dédié de l’apprenant. Ils complètent efficacement les sessions synchrones avec un formateur.