Zamiast skomplikowanych kwerend SQL, prób, catch i finałów wszędzie w kodzie mam metodę execute(SQL, up to three inputs)
, jednak jeśli próbuję uzyskać dostęp do zestawu wyników, który generuje poza wykonaniem, które otrzymujesz błąd:Java Używanie metody SQL Execute, ale możliwość uzyskiwania dostępu do wyników
"Operation not allowed after ResultSet closed"
Który ponieważ po zamknięciu PreparedStatement zamyka ResultsSetToo (i nie wydaje się być w żaden sposób wokół niego).
Czy istnieje sposób, aby to naprawić? Jedyne, co myślę było przekształcenie go do tablicy, która jest przechowywana
Wielkie dzięki za poświęcony czas,
Powinieneś przekazać 'Map', aby uniknąć utraty informacji o rzeczywistych zwracanych typach danych. Natomiast 'rs.getObject (1) .toString()' zbombarduje wyjątek NullPointerException, jeśli tabela zawiera wartości NULL. –
Wszystkie odwzorowane typy JDBC mają metodę toString(). I o wartości zerowej, nie miałem żadnych problemów. SELECT * Z jednego z moich tabel, w którym znajduje się pole DATE z wartościami pustymi, wypisuje "null" na konsoli. – athspk
Oczywiście mają metodę toString(). Ale konwersja Stringa z powrotem do "prawdziwej" rzeczy może być problemem.Skąd wiesz, do którego obiektu mają zostać przekonwertowane? Co z domyślnym formatowaniem, które zależy od ustawień narodowych (separator dziesiętny, format daty i tak dalej). To tak jak przechowywanie wszystkiego w kolumnie varchar w bazie danych ... –