Рефакторинг одинакового кода для разных типов данных - PullRequest
2 голосов
/ 19 октября 2010

Я работаю на Java, вставляя данные из HashMaps определенных типов в базу данных SQL.Он создал такой код:

for ( String key : strings.keySet() ) {
    result_set.updateString(key, strings.get(key));
}

for ( String key : booleans.keySet() ) {
    result_set.updateBoolean(key, booleans.get(key));
}

for ( String key : dates.keySet() ) {
    result_set.updateDate(key, dates.get(key));
}

Я привык к Ruby, где такой код занимал одну строку, и я не могу поверить, что мне нужно делать это в Java.Я должен быть не прав.Есть ли способ лучше?Я предполагаю, используя Generics?Я попытался использовать result_set.updateObject (ключ, объект), но он дал мне «SQLException: невозможно преобразовать между java.util.Date и VARCHAR.»

1 Ответ

1 голос
/ 19 октября 2010

Взгляните на MyBatis , SQL Mapper, который обрабатывает отображение между POJO (включая Карты и Списки) и SQL.Это сэкономило нам массу работы по сравнению с тем, что потребовалось бы, чтобы сделать все самим в сыром JDBC.

...