【问题标题】:JDBC - How to set char in a prepared statementJDBC - 如何在准备好的语句中设置 char
【发布时间】:2011-08-06 21:20:29
【问题描述】:

我找不到类似的方法

char c = 'c';

preparedStatement.setChar(1, c);

如何为准备好的语句设置字符?

【问题讨论】:

  • 为什么不使用setString
  • 或者试试preparedStatement.setObject(1, c, java.sql.Types.CHAR)

标签: java jdbc prepared-statement


【解决方案1】:

使用 setString() 设置变量。

要找回它,请使用 getString() 并假设它不为空,请执行以下操作来获取字符:

getString("your_column").charAt(0);

【讨论】:

    【解决方案2】:

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

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

    JDBC 类型            Java 类型 ------------------------------------------ CHAR               字符串 VARCHAR               字符串 LONGVARCHAR        字符串 NUMERIC            java.math.BigDecimal DECIMAL             java.math.BigDecimal BIT               布尔值 布尔值            布尔值 TINYINT            字节 SMALLINT             短

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

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

    【讨论】:

    • 你的意思是 PreparedStatement.setString(1, String.valueOf(myChar)) 对吧?
    【解决方案3】:
    PreparedStatement.setString(1,c+" ");
    
    PreparedStatement.setString(1,String.valueOf(c));
    

    【讨论】:

    • 虽然此代码可能会回答问题,但提供有关 如何 和/或 为什么 解决问题的附加上下文将改善答案的长期性价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2013-12-06
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多