--- title: Connect Quarkus (JDBC) to Neon subtitle: Learn how to connect to Neon from Quarkus using JDBC enableTableOfContents: true updatedOn: '2025-10-24T12:48:41.462Z' --- [Quarkus](https://quarkus.io/) 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. 1. Navigate to the [Projects](https://console.neon.tech/app/projects) page in the Neon Console. 2. Click **New Project**. 3. Specify your project settings and click **Create Project**. ## Create a Quarkus project Create a Quarkus project using the [Quarkus CLI](https://quarkus.io/guides/cli-tooling): ```shell 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-jdbc` with the PostgreSQL JDBC driver, Agroal datasource implementation, and RESTEasy Reactive extensions installed. ## Configure a PostgreSQL data source Create a `.env` file 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: ```shell shouldWrap QUARKUS_DATASOURCE_DB_KIND=postgresql QUARKUS_DATASOURCE_USERNAME=[user] QUARKUS_DATASOURCE_PASSWORD=[password] QUARKUS_DATASOURCE_JDBC_URL=jdbc:postgresql://[neon_hostname]/[dbname]?sslmode=require&channelBinding=require ``` 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](/docs/connect/connect-from-any-app). ## Use the PostgreSQL JDBC Driver Create a `PostgresResource.java` file in the same directory as the `GreetingResource.java` that was generated by Quarkus during project creation. Paste the following content into the `PostgresResource.java` file: ```java 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: ```shell quarkus dev ``` Visit [localhost:8080/postgres/version](http://localhost:8080/postgres/version) in your web browser. Your Neon database's Postgres version will be returned. For example: ``` PostgreSQL 17.5 (6bc9ef8) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit ```