Jest czwartek, godzina 4:11 więc szybko bez zbędnego javovego kodu:
- query = : możesz zrobić metodę która zbuduje Ci zapytanie na podstawie jakichś warunków, prawda ? możesz ją potem wykorzystać. Więc mamy redukcje z 2 linijek:
query = "insert into " + table + "(" + val + ") values ("+question+")";
PreparedStatement add = conn.prepareStatement(query);
do jednego wywołania metody.
Dalej, wydaje mi się że to:
for (Map.Entry<String, String> entry : valueMap.entrySet()) {
val += entry.getKey();
question += "?";
if (x < mapsize) {
val += ", ";
question += ", ";
}
mapsize--;
}
Może bez problemy śledzić jakaś klasa(instancja), jakiś serwis. coś co wykona logikę za Ciebie. Spróbuj dopieścić kod - myśl tak, że metoda ma wywoływać zapytania, które będą logicznymi prośbami, takimi jak
- zbuduj zapytanie
- wykonaj zapytanie i przypisz do X
- wykonaj iteracje po X
Zawsze staraj się zadawać pytanie co dana metoda ma robić - i staraj się zamienić pytanie w pewną restrykcję / warunek którą metoda ma spełnić.
P.S moje rady, przy tym co zapodał @Koziołek wydają się zwykłym szajsem, więc propozycja, wykorzystaj jego podejście, bo dla mnie wydaje się idealne. Jedna klasa która bierze odpowiedzialność za budowanie zapytań - po prostu piękne - i jeżeli możesz - i nawet jak nie możesz użyj jakiegoś ORM'a