Quarkus is a Java framework optimized for cloud environments. This guide shows how to connect to Neon from a Quarkus project using the PostgreSQL JDBC driver.
To connect to Neon from a Quarkus application using the Postgres JDBC Driver:
- Create a Neon project- If you do not have one already, create a Neon project. - Navigate to the Projects page in the Neon Console.
- Click New Project.
- Specify your project settings and click Create Project.
 
- Create a Quarkus project- Create a Quarkus project using the Quarkus CLI: - quarkus create app neon-with-quarkus-jdbc \ --name neon-with-quarkus-jdbc \ --package-name com.neon.tech \ --extensions jdbc-postgresql,quarkus-agroal,resteasy-reactive- You now have a Quarkus project in a folder named - neon-with-quarkus-jdbcwith the PostgreSQL JDBC driver, Agroal datasource implementation, and RESTEasy Reactive extensions installed.
- Configure a PostgreSQL data source- Create a - .envfile in the root of your Quarkus project directory. Configure a JDBC data source using the components of your Neon database connection string and specifying the database kind as shown:- QUARKUS_DATASOURCE_DB_KIND=postgresql QUARKUS_DATASOURCE_USERNAME=[user] QUARKUS_DATASOURCE_PASSWORD=[password] # Note that "jdbc" is prepended, and that "?sslmode=require" is appended to the connection string QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://[neon_hostname]/[dbname]?sslmode=require- note- You can find the connection details for your database by clicking the Connect button on your Project Dashboard. For more information, see Connect from any application. 
- Use the PostgreSQL JDBC Driver- Create a - PostgresResource.javafile in the same directory as the- GreetingResource.javathat was generated by Quarkus during project creation. Paste the following content into the- PostgresResource.javafile:- package com.neon.tech; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import jakarta.inject.Inject; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; @Path("/postgres") public class PostgresResource { @Inject DataSource dataSource; @GET @Path("/version") @Produces(MediaType.TEXT_PLAIN) public String getVersion() { try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) { ResultSet resultSet = statement.executeQuery("SELECT version()"); if (resultSet.next()) { return resultSet.getString(1); } } catch (SQLException e) { e.printStackTrace(); } return null; } }- This code defines a HTTP endpoint that will query the database version and return it as a response to incoming requests. 
- Run the application- Start the application in development mode using the Quarkus CLI from the root of the project directory: - quarkus dev- Visit localhost:8080/postgres/version in your web browser. Your Neon database's Postgres version will be returned. For example: - PostgreSQL 15.4 on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. Users on paid plans can open a support ticket from the console. For more details, see Getting Support.