Używam obiektu Java PreparedStatment do skonstruowania serii zapytań INSERT z pakietowaniem. Wyrażenie jest w formacie ...Jak używać zmiennej tablename dla instrukcji przygotowanej w java insert
String strQuery = "INSERT INTO ? (col1, col2, col3, col4, col5) VALUES (?,?,?,?,?,?);";
... więc obie wartości pola i nazwatabeli są zmiennymi (tzn. Mam wiele tabel z tego samego formatu kolumny, z których każda wkładka zostanie skierowany na inny). Mogę sprawić, by egzekucje zadziałały, gdy usunę "?" nazwatabeli zmienna i trudno kod ale każdy przygotowano sprawozdanie zostanie wstawiona do innej tabeli tak musi pozostać zmienna I wypełnić bezpośrednio przed wykonaniem kwerendy wsadowy przy użyciu ...
stmt.setString(1, "tableName1");
Jak mogę pozwolić to być dynamiczna zmienna proszę?
Dzięki ludziom ... wydaje się, że nie znam nazwy tablicowej, którą chcę wstawić, aż do momentu zamiany zmiennych dla każdego wiersza, najlepszą rzeczą jest skonstruowanie wstawki w ramach procedury przechowywanej bazy danych. Następnie przeprowadź wszystkie parametry dla każdego wiersza do przechowywanego procesu, a następnie pozwól DB obsługiwać manipulację nazwami. Mimo to dziękuję za odpowiedzi. :-) – ForestSDMC
Czy to oznacza, że ochrona wstrzykiwania SQL jest niemożliwa w przypadku dynamicznych nazw tabel? –
@Richard Doszedłem do tego samego wniosku i brzmi to głupio, ale przynajmniej łatwo jest sprawdzić nazwę tabeli na liście dostępnych tabel w bazie danych. – JulienD