JDBC - 如何在预处理语句中设置字符

34

我找不到像下面这样的方法:

char c = 'c';

preparedStatement.setChar(1, c);

如何将字符设置到预处理语句中?


1
为什么不使用 setString - Nishant
1
或者尝试使用 preparedStatement.setObject(1, c, java.sql.Types.CHAR) - jCoder
3个回答

65

JDBC Specification 4.0中的附录B(数据类型转换表)列出了以下转换:

此表还显示了SQLInput读取器方法使用的转换,但它们仅使用建议的转换。

JDBC类型               Java类型
-------------------------------------------
CHAR                   String
VARCHAR                 String
LONGVARCHAR             String
NUMERIC                 java.math.BigDecimal
DECIMAL                 java.math.BigDecimal
BIT                    boolean
BOOLEAN                 boolean
TINYINT                 byte
SMALLINT                short

表 B-1 JDBC类型映射到Java类型

因此,PreparedStatement.setString(1, String.valueOf(myChar))就可以解决问题。


你的意思是 PreparedStatement.setString(1, String.valueOf(myChar)) 对吧? - Leo

5
使用setString()设置变量。
使用getString()获取它,假设它不为空,可以像这样获取字符:
getString("your_column").charAt(0);

0
PreparedStatement.setString(1,c+" ");

PreparedStatement.setString(1,String.valueOf(c));

虽然这段代码可能回答了问题,但提供有关它如何解决问题以及为什么解决问题的其他上下文信息将有助于提高答案的长期价值。 - spongebob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接