什么是MySQL TEXT的java.sql.Types等价物?

时间:2011-07-21 07:21:31

标签: java mysql sql jdbc types

对TEXT类型的列(在MySQL数据库中)使用PreparedStatement&n; setObject方法时,最后一个参数应该是什么?

例如,我知道这对于VARCHAR列是可以的:

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

其中stmtPreparedStatementTypesjava.sql.Types

但是如果DB列的类型是TEXT,我还应该使用VARCHAR吗?或者BLOB,或CLOB?

3 个答案:

答案 0 :(得分:9)

答案(是的,你打算使用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

答案 1 :(得分:1)

为什么不使用

stmt.setString ?

是否为文字类型? http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html#setString(int,java.lang.String)

答案 2 :(得分:0)

此处没有TEXT字段Oracle Doc for sql Types,但它可能会出现在未来(现在您可以使用大小为21845的信息作为实现硬编码技巧 - 如果您稍后需要知道这是TEXT字段 - 实际字段大小是您选择的,其余文本由MySql记忆在其他地方

所以第一个回答“使用VARCHAR作为类型”是有效的(可能是库调用setString)

答案“setString”也在工作(如果你想自己做决定,前面有一个开关(field_type) - 我使用这个选项来调试代码更容易 - 速度与cost = switch相同两种情况都是+ setString)

感谢大家的链接和确认!