2009-05-13 13 views
6

Mam varbinary kolumna używamy do przechowywania plików programu Excel. Muszę zaktualizować tę kolumnę do zawartości innego pliku xls, który jest aktualnie w moim systemie plików.Jak zapisać plik binarny w bazie danych sql?

Biorąc pod uwagę java.sql.Connection, w jaki sposób zaktualizować wiersz?

Jesteśmy przy użyciu programu SQL Server 2005.

Odpowiedz

5

skończyło się w następujący sposób:

PreparedStatement st = conn.prepareStatement("update MyTable set binaryData = ? where id= 9"); 
st.setBinaryStream(1, new FileInputStream(file), (int)file.length()); 
st.execute(); 
+1

Ostrzeżenie: jeśli plik jest dłuższy niż Integer.MAX_VALUE, rzutowanie jego długości() na int daje liczbę ujemną, co może spowodować, że setBinaryStream nie będzie działał poprawnie. Nie wiem, dlaczego setBinaryStream nie został zadeklarowany jako "długi" jako długość. –

0

Pass w tablicy bajtów do pola BLOB.

+0

Chociaż ten link może odpowiedzieć na pytanie, lepiej jest to istotne części odpowiedz tutaj i podaj link do referencji. Odpowiedzi dotyczące linków mogą stać się nieprawidłowe, jeśli strona z linkami się zmieni. –

+0

@TanmayPatil To nie jest odpowiedź typu "link only". Zwięźle wyjaśnia, co powinieneś zrobić. Krok 1: zdobądź tablicę bajtów. Krok 2: umieść go w polu BLOB. czego mi brakuje? Inne zasoby mogą dostarczyć szczegółów, jeśli naprawdę potrzebujesz tak dużo trzymania ręki. –

2

Używając java.util.Connection i poprawnego SQL, można utworzyć odpowiednie java.sql.PreparedStatement (nie używam SQL Server, więc lepiej byłoby napisać SQL samemu).

Można utworzyć plik java.sql.Blob, korzystając z danych bajtów odczytanych z pliku xls.

Zadzwoń do .setBlob (Blob) na swoim PreparedStatement, a następnie wykonaj.

Nie napisałem kodu dla ciebie, ale to powinno być podstawy.

-2

W starszych wersjach Java można spróbować

obj.setObject("@somefield", some_data); 
+0

Umieściłem to, aby pomóc komuś, kto może być zmuszony do używania bardzo starej Javy, nie zalecam tego jako nowoczesnego rozwiązania. –

Powiązane problemy