Skip to content

Integration overview

Kaumei JDBC keeps runtime integration simple. Generated classes operate on a plain JDBC connection provided through a single interface.

JdbcConnectionProvider.java
@FunctionalInterface
public interface JdbcConnectionProvider {
Connection getConnection() throws SQLException;
}

The Spring example below illustrates the structure of a service interface as example:

NamesServiceKaumei.java
@JdbcConstructorAnnotations(Autowired.class)
@Transactional
@Service
public interface NamesServiceKaumei extends NamesService {
@JdbcUpdate("DELETE FROM value_budge")
int deleteAll();
@JdbcUpdate("DELETE FROM value_budge where value_name = :value")
int delete(String value);
@JdbcUpdate("INSERT INTO value_budge (value_name, budge) VALUES (:value, :budge)")
void insert(String value, @Nullable Integer budge);
@JdbcSelect("SELECT count(*) FROM value_budge")
int count();
@JdbcSelect("SELECT * FROM value_budge order by value_name, budge")
List<ValueBudge> selectAll();
}

Each generated class exposes a constructor that accepts a JdbcConnectionProvider. Every DAO method borrows the current connection from that provider.

@Generated(...)
@Transactional
@Service
public class NamesServiceKaumeiJdbc implements NamesServiceKaumei {
private final JdbcConnectionProvider supplier;
@Autowired
public NamesServiceKaumeiJdbc(JdbcConnectionProvider supplier) {
this.supplier = Objects.requireNonNull(supplier,"supplier");
}
// ...
}

Provide an implementation that fits your framework. Wire it into your dependency injection container. These guides walk through common scenarios: