вставлять данные в большое количество столбцов в JDBC Java - PullRequest
2 голосов
/ 06 ноября 2011

У меня есть таблица с 50 столбцами, и я хочу вставить в нее все элементы переменной HashMap (ключи HashMap и имена столбцов таблицы совпадают).
Как я могу сделать это без написания 50 строк кода?

Ответы [ 3 ]

3 голосов
/ 06 ноября 2011

Получить набор ключей для HashMap. Выполните итерацию этого набора ключей, чтобы создать строку, содержащую оператор вставки. Используйте полученную строку для создания PreparedStatement. Затем выполните итерацию этого набора ключей еще раз, чтобы установить параметры по имени, используя объекты, которые вы извлекаете из HashMap.

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

1 голос
/ 07 ноября 2011
  1. Позвоните map.keySet(), чтобы получить имя всех столбцов.
  2. Создайте оператор INSERT, повторяя набор ключей.
    • Столбец из элемента (ключа) в наборе ключей.
    • Данные из map.get(key).
1 голос
/ 06 ноября 2011

Я бы посоветовал вам укусить пыль и просто написать метод, который сделает за вас грязную работу, содержащую 50 строк кода установки параметров.Это не так уж плохо, и вы должны написать это только один раз.Надеюсь, ты не такой ленивый ;-)

И, кстати, не слишком ли много 50 столбцов в таблице?Возможно, процесс нормализации может помочь и снизить сложность вашей базы данных и кода, который будет ею манипулировать.

Другой способ - использовать ORM, такой как Hibernate , или более легкий подход, такой как Шаблон JDBC Spring .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...