2011-07-21 5 views
10

タイプTEXT(MySQL DB内)のカラムにPreparedStatementsetObjectメソッドを使用する場合、最後のパラメータはどうなりますか?MySQL TEXTに相当するjava.sql.Typesは何ですか?

例えば、私は、これはVARCHAR列のOKであることを知っている:

stmt.setObject(i, "bla", Types.VARCHAR);

stmtPreparedStatementあり、そしてTypesjava.sql.Typesです。

DB列の型がTEXTの場合、引き続きVARCHARを使用する必要がありますか?またはBLOBかCLOBですか?

+1

FYI:この情報は、['DatabaseMetaData.getColumns'](http://download.oracle.com/javase/6/docs/api/java/sql/DatabaseMetaData.html#getColumns%28java)を使用して取得できます。 lang.String、%20java.lang.String、%20java.lang.String、%20java.lang.String%29)メソッド。 'connection.getMetaData()'を呼び出すことによって 'DatabaseMetaData'オブジェクトを取得できます。 'getColumns'によって返される' ResultSet'は、あなたが探している 'DATA_TYPE'という名前の' int'カラムを持っています。 –

答えて

7

答えは(YES、あなたはVARCHARを使用するように意図されている)ここで見つけることができます:

http://dev.mysql.com/doc/connector-j/en/connector-j-reference-type-conversions.html(古い壊れたリンクを更新)

、ここではMYSQL TEXTタイプ

に関するいくつかの情報ですあなたが使用していないのはなぜhttp://dev.mysql.com/doc/refman/5.0/en/blob.html

+0

ありがとうございます。私はそれらのページに行ってきました、そして、私は 'GetColumnClassName'戻り値が私が必要としていたものであるかどうか確信がありませんでした、それを明確にするためにありがとう:) –

+3

関連情報は、 –

0

ありここにはTEXTフィールドOracle Doc for sql Typesはありませんが、それは今あなたが実装、ハードコードトリックとしてサイズが21845であるという情報を使用することができます(将来的に表示されることがあります - あなたが知る必要がある場合後でこれがTEXTフィールドです - 実際のフィールドサイズは選択したもので、残りのテキストはMySqlの別の場所に記憶されます)

"VARCHARを型として使用する"という最初の答えが働いていますsetString call)

自分で決定したい場合は、 "setString"という回答も働いています(スイッチ(field_type)の前にあります) eこのオプションを使用すると、コードを簡単にデバッグできます。どちらの場合もspeed = switch + setStringと同じです)

ありがとうございました!

関連する問題