Pyranid 4.0.1 API

Pyranid

Pyranid is a zero-dependency JDBC interface for modern Java applications.

See https://www.pyranid.com for more detailed documentation and code samples.
// Minimal setup, uses defaults
DataSource dataSource = ...
Database database = Database.withDataSource(dataSource).build();

// Queries
Optional<Car> specificCar = database.query("SELECT * FROM car WHERE id = :id")
  .bind("id", 123)
  .fetchObject(Car.class);
List<Car> blueCars = database.query("SELECT * FROM car WHERE color = :color")
  .bind("color", Color.BLUE)
  .fetchList(Car.class);
Optional<UUID> id = database.query("SELECT id FROM widget LIMIT 1").fetchObject(UUID.class);
List<BigDecimal> balances = database.query("SELECT balance FROM account").fetchList(BigDecimal.class);

// Statements
long updateCount = database.query("UPDATE car SET color = :color")
  .bind("color", Color.RED)
  .execute();
Optional<UUID> insertedId = database.query("INSERT INTO book VALUES (:title) RETURNING id")
  .bind("title", "The Stranger")
  .executeForObject(UUID.class);

// Transactions
database.transaction(() -> {
  BigDecimal balance1 = database.query("SELECT balance FROM account WHERE id = :id")
    .bind("id", 1)
    .fetchObject(BigDecimal.class).get();
  BigDecimal balance2 = database.query("SELECT balance FROM account WHERE id = :id")
    .bind("id", 2)
    .fetchObject(BigDecimal.class).get();

  balance1 = balance1.subtract(amount);
  balance2 = balance2.add(amount);

  database.query("UPDATE account SET balance = :balance WHERE id = :id")
    .bind("balance", balance1)
    .bind("id", 1)
    .execute();
  database.query("UPDATE account SET balance = :balance WHERE id = :id")
    .bind("balance", balance2)
    .bind("id", 2)
    .execute();
});
Packages
Package
Description
This package contains the set of all Pyranid types.