Accessing Relational Databases with Quarkus

Map and query your entities from relational databases using JPA and Panache ORM

This course is for Quarkus developers who want to discover how Quarkus handles relational databases. It’s a mixture of slides and code so you can “Understand and Practice” at the same time. This way, you learn the theory, and then put it into practice by developing an application step by step.

What you’ll learn

  • Understand the persistence ecosystem and how Quarkus supports it.
  • Bootstrap three data-centric applications with Quarkus.
  • Develop, configure and test each application separately using JDBC, JPA, Panache ORM, JUnit and RestAssured.
  • Persist objects into MySQL, MariaDB, H2 and PostgresSQL databases.
  • Use JPA to map persistent objects (columns, tables, inheritance, relationships).
  • Use JPQL and Simplified Panache QL to query persistent objects.
  • Use JAX-RS and JSON-B to expose data through REST endpoints.
  • Use Qute templates to visualise data in HTML.
  • Beautify the Qute templates with Twitter Bootstrap.
  • Use Docker through TestContainers and DevServices to test the application.
  • Build and execute the application using several Quarkus profiles.

Course Content

  • Accessing Relational Databases with Quarkus –> 4 lectures • 17min.
  • Understanding Quarkus –> 4 lectures • 14min.
  • Getting Started –> 6 lectures • 24min.
  • Modeling Persistent Objects –> 10 lectures • 49min.
  • Managing Entities –> 9 lectures • 28min.
  • Mapping Entities –> 11 lectures • 52min.
  • Querying Entities –> 7 lectures • 27min.
  • Exposing Data –> 12 lectures • 1hr 8min.
  • Executing the Application –> 9 lectures • 26min.
  • Revisiting the Application –> 3 lectures • 6min.
  • What’s Next? –> 4 lectures • 8min.

Auto Draft

Requirements

  • A recent Windows / Mac / Linux machine.
  • Knowledge of the Java language and the Java ecosystem (Maven, JUnit).
  • Basic knowledge of Quarkus.
  • Basic knowledge of relational databases (SQL).
  • Basic knowledge of RESTful Web Services.
  • Basic knowledge of HTML and CSS.
  • Basic knowledge of Docker.

This course is for Quarkus developers who want to discover how Quarkus handles relational databases. It’s a mixture of slides and code so you can “Understand and Practice” at the same time. This way, you learn the theory, and then put it into practice by developing an application step by step.

In this course you will develop a Quarkus applications maps and queries different kind of persistent objects to several relational databases. After introducing JDBC, JPA and Panache ORM, you will make sure your development environment is set up, and you will go from bootstrapping three Quarkus applications, developing and refactoring a rich business model, map and query these objects to a Postgres database. The different steps you’ll go through are:

  • Understand JDBC, JPA and Panache ORM
  • Understand SQL, JPQL and Simplified Panache JPQL
  • Understand the differences between Panache Active Record and Panache Repositories
  • Check your development environment
  • Bootstrap three Quarkus applications:
  • o POJOs and JDBC with MySQL
  • o JPA Entities with MariaDB
  • o Panache ORM Entities with PostgresSQL
  • Test and refactor these applications so they have dependencies between them
  • Map persistent objects to a relational database (with annotations and XML)
  • Map inheritance and relationships
  • Query persistent objects using JPQL and Simplified Panache QL
  • Expose data in JSON using REST endpoint with JAX-RS and JSON-B
  • Handle transactions
  • Visualise data in HTML using Qute templates and Twitter Bootstrap
  • Use Quarkus profiles to switch between database
  • Execute the application in dev/test/production mode thanks to DevServices and Docker

At the end of the course you’ll get a good understanding on how to develop a data centric application with Quarkus. You will be able to bootstrap, develop, package and execute an application that accesses a relational database, but most important, take Quarkus to your next project.

Good luck for the course, and please reach out if you need any help or if you have any request: I’m here to help!

Get Tutorial