2009-05-13 7 views
6

私はExcelファイルを格納するために使用するvarbinary列を持っています。この列を現在ファイルシステム上にある別のxlsファイルの内容で更新する必要があります。 java.sql.Connectionを考えるバイナリファイルをSQLデータベースに保存するにはどうすればよいですか?

、どのように私は行を更新する必要がありますか?

我々は、SQL ServerにBLOBフィールドにバイト配列内2005

答えて

5

私は次のことをやってしまった:

のJavaの古いバージョンでは
PreparedStatement st = conn.prepareStatement("update MyTable set binaryData = ? where id= 9"); 
st.setBinaryStream(1, new FileInputStream(file), (int)file.length()); 
st.execute(); 
+1

警告:ファイルがInteger.MAX_VALUEバイトよりも長い場合、length()をintにキャストすると負の数が返され、setBinaryStreamが正しく動作しなくなる可能性があります。 setBinaryStreamが長さとして "long"を取ると宣言されなかった理由は分かりません。 –

0

パスを使用しています。 java.util.Connection、あなたが適切なのjava.sql.PreparedStatementを作成することができ、正しいSQLを(あなたがSQL自分より良い書き込みだろうので、私は、SQL Serverを使用していない)を使用して

+0

を試みる場合があります。このリンクは質問に答えるかもしれないが、の重要な部分を含める方が良いですここに答えて、参考のためのリンクを提供してください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 –

+0

@TanmayPatilこれはリンクのみの回答ではありません。あなたが何をすべきかを簡潔に説明します。ステップ1:バイト配列を取得します。ステップ2:それをBLOBフィールドに入れます。私は何が欠けていますか?あなたが本当にそれほど多くの手持ちを必要とする場合は、他のリソースが詳細を提供することができます。 –

2

あなたのXLSファイルから読み込むバイトのデータを使用してのjava.sql.Blobを作成することができます。

コールあなたのPreparedStatement上.setBlob(BLOB)と、それを実行します。

私はあなたのためのコードを書いていないが、それは基本的にする必要があります。

-2

あなたは

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

非常に古いJavaを使わなければならない人を助けるためにこれを投稿しましたが、私はこれを現代的な解決策として主張していません。 –

関連する問題