Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


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 Build


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