Dalesbred is a breed of domestic sheep originating in the United Kingdom.

It is also a library that strives to make database access from Java nicer. Dalesbred assumes that SQL is a great way to access database, but that JDBC as an API causes pain. Therefore it wraps JDBC with a set of helpers while still providing access to low-level functionality.

Visit the Dalesbred website for details.

Build Status


Add dependency to your pom.xml:


Create a class with public fields, normal JavaBean accessors or a constructor matching your SQL-query. For example:

public class Department {
    public int id;
    public String name;

Create a database connection:

Database db = Database.forUrlAndCredentials("jdbc:example-url", "login", "password");

Fetch matching rows from table:

List<Department> departments = db.findAll(Department.class,
        "select id, name from department where name like ?", "%foo");

Insert a new row:

db.update("insert into user (id, name) values (?, ?)", 42, "Example User");

Improve your experience with Kotlin and bundled extension methods:

val departments = db.findAll<Department>("""
    select id, name 
      from department
      where name like ?""", 



If you're using IntelliJ IDEA, check out Dalesbred IDEA Plugin, which provides inspections for common errors (e.g. mismatch between query parameters and query).