Skip to main content
Neon Docs

Search documentation

Type to search this documentation.

On this pageOverview

Connect Quarkus (JDBC) to Neon

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 a Lakebase Postgres databas...

Pre-built prompt for connecting Quarkus applications to Lakebase Postgres using JDBC

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 a Lakebase Postgres database from a Quarkus application using the Postgres JDBC Driver:

  1. Create a Neon project

    If you do not have one already, create a Neon project.

    1. Navigate to the Projects page in the Neon Console.
    2. Click New Project.
    3. Specify your project settings and click Create Project.
  2. Create a Quarkus project

    Create a Quarkus project using the Quarkus CLI:

    Bash
    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.

  3. 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 database connection string and specifying the database kind as shown:

    Bash
    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

    note

    You can find the connection details for your database by clicking the Connect button in the Console nav. For more information, see Connect from any application.

  4. 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.

  5. Run the application

    Start the application in development mode using the Quarkus CLI from the root of the project directory:

    Bash
    quarkus dev

    Visit 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

Join our Discord Server to ask questions or see what others are doing with Neon. For paid plan support options, see Support.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu