Разница между Spring JDBC против простого JDBC? - PullRequest
15 голосов
/ 27 февраля 2012

В чем основное отличие Spring JDBC от JDBC?

Ответы [ 5 ]

22 голосов
/ 27 февраля 2012

Позвольте мне показать вам простой пример использования JDBC:

final Connection connection = ds.getConnection();
try {
    final Statement statement = connection.createStatement();
    try {
        final ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Orders");
        try {
            resultSet.next();
            final int c = resultSet.getInt(1);
        } finally {
            resultSet.close();
        }
    } finally {
        statement.close();
    }
} finally {
    connection.close();
}

Гораздо лучше, когда попробуй с ресурсами:

try (
        Connection connection = ds.getConnection();
        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("SELECT COUNT(*) FROM Orders");
) {
    resultSet.next();
    final int c = resultSet.getInt(1);
}

Конечно, вы можете извлечь общий код и использовать шаблонный метод Design Pattern. Фактически, вы бы заново изобрели JdbcTemplate:

final int c = new JdbcTemplate(ds).queryForInt("SELECT COUNT(*) FROM Orders");

Также Spring JDBC обеспечивает преобразование исключений (больше не проверено SQLException и различия между базами данных / диалектами) и простые возможности ORM.

2 голосов
/ 07 ноября 2017

1.) Spring jdbc-модуль - это уровень абстракции на вершине технологии jdbc, этот уровень избегает кода, используемого в программировании jdbc. 2.) Spring ORM модуль - это уровень абстракции на верхних инструментах ORM. 3.) При работе с инструментами ORM, такими как спящий режим, у нас есть код пластины котла, этот пружинный слой ORM избегает кода панели котла инструментов ORM.

1 голос
/ 27 февраля 2012

Добавленная стоимость Spring JDBC, предоставляемая Spring Framework на верхнем слое JDBC

  1. Определить параметры подключения
  2. Открыть соединение
  3. Укажите выписку
  4. Подготовить и выполнить инструкцию
  5. Настройка цикла для итерации по результатам (если есть)
  6. Выполнять работу для каждой итерации
  7. Обработка любого исключения
  8. Обработка транзакций
  9. Закрыть соединение

По сути, вам не нужно беспокоиться об управлении и страданиях от инфраструктурного / коммуникационного кода и просто беспокоиться о данных и их сопоставлении с объектами.

Spring использует шаблон шаблона, чтобы скрыть все низкоуровневые детали, в то же время предоставляя дополнительные возможности для расширения и работы с JDBC.

Кроме того, существует четко определенный API для исключений базы данных, который действительно удобен для разработчиков по сравнению с иерархией исключений, предоставляемой низкоуровневым API JDBC

0 голосов
/ 01 ноября 2018

По моему мнению, JDBC разделяет некоторые функции с JDBCTemplate, но они могут быть совершенно другими. main различия, которые приходят мне на первый взгляд на этот вопрос:

  • Если вы обрабатываете огромное количество данных, скажем, вы хотите вставитьв базу данных миллионы (или миллиарды) строк записей, вы можете использовать JDBC.Менее чем за 4 минуты я вставил миллион строк с различной информацией в базу данных с конкатенацией операторов JDBC и MySQL.Напротив, мне понадобится больше десяти минут, чтобы сделать то же самое с шаблоном JDBC.

  • Однако, если вы используете JDBC, необходимо написать больше кодов, чтобы все было правильнопо сравнению с использованием шаблона JDBC.Томаш Нуркевич проиллюстрировал это с помощью кода, а Сантош Гокак предоставил краткое изложение шагов по использованию JDBC.Но есть еще одна вещь, скрытая за кулисами, это конфигурация Spring, поскольку JDBC Template является частью Spring Framework.Если вы новичок в конфигурации XML / Annotation для Spring, все может быть немного сложнее, хотя JDBC, хотя и требует больше шагов, в некоторой степени более интуитивно понятен.

0 голосов
/ 27 февраля 2012

Весна JDBC? Я знаю только пару шаблонов Spring JDBC.

Они позволяют вам получать доступ к функциям JDBC из контейнера Spring и предоставляют некоторые дополнительные упрощения по сравнению с обычным JDBC, такие как управление соединениями и обработка исключений.

В основном Spring сложнее в настройке, но проще в разработке, поэтому все зависит от масштаба проблемы, с которой вы сталкиваетесь.

...