Spring JDBC шаблон без Spring - PullRequest
10 голосов
/ 07 декабря 2011

Существует ли библиотека Java, такая как Spring JDBC Template, с таким же качеством кода и документации и схожей иерархией исключений доступа к данным , но без зависимостей от других модулей Spring (модулей ядра / компонентов / контекста согласно http://mvnrepository.com/artifact/org.springframework/spring-jdbc/3.0.6.RELEASE)?

Ответы [ 3 ]

14 голосов
/ 07 декабря 2011

Spring-jdbc напрямую зависит от следующих библиотек: spring-core, spring-beans и spring-tx.Остальные зависимости являются необязательными, поэтому они вам на самом деле не нужны.

Если этих зависимостей уже много, то вы можете взглянуть на Apache DbUtils .

8 голосов
/ 06 июня 2012

Незначительное исправление принятого ответа. Насколько я могу судить, требуется как минимум еще одна банка. Он вступает в игру именно тогда, когда осуществляется доступ к иерархии исключений доступа к данным (исключение выдается базовым драйвером базы данных и включается в исключение Spring). Фляга - весна-асм (манипулирование байтовым кодом). Я обнаружил это случайно, когда у меня была проблема в моем запросе SQL, и трассировка стека показала что-то вроде MissingClassException. (Я бы предпочел просто добавить комментарий к ответу, но, похоже, я еще не отвечаю требованиям).

3 голосов
/ 17 августа 2016

Существует другой альтернативный способ, очень близкий к JdbcTemplate, вы можете использовать библиотеку sql2o, которая имеет только slf4j и guava зависимости.Ниже приведен простой пример с их веб-сайта.Кроме того, в качестве бонуса вы по-прежнему получаете более высокую производительность, как вы можете видеть на этом тесте (раскрытие: я НЕ участник проекта sql2o, я просто использую егов проекте).

public class Task{
    private int id;
    private String category;
    private Date dueDate;
    // getters and setters here
}
Sql2o sql2o = new Sql2o(DB_URL, USER, PASS);

String sql =
    "SELECT id, category, duedate " +
    "FROM tasks " +
    "WHERE category = :category";

try(Connection con = sql2o.open()) {
    List<Task> tasks = con.createQuery(sql)
        .addParameter("category", "foo")
        .executeAndFetch(Task.class);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...