Pyranid 4.0.1 API
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