java.sql.PreparedStatement的setBoolean()方法

时间:2017-08-02 10:54:50

标签: java sql oracle

根据oracle文档 -

https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setBoolean(int,%20boolean)

setBoolean(int parameterIndex,boolean x)

方法将指定参数设置为给定的Java布尔值。驱动程序在将数据发送到数据库时将其转换为SQL BIT或BOOLEAN值。

这里有什么方法可以知道该值何时存储为SQL BIT?什么时候它会以BOOLEAN的形式存储?

我正在使用oracle数据库,我使用此方法将值传递为true(Java布尔值),并且存储在数据库中的值为1而不是Y.可能是什么原因?

1 个答案:

答案 0 :(得分:3)

由于它显示为Oracle doesn't have either BIT or BOOLEAN as a storage data type,因此请勿使用setBoolean。它被定义为适用于那些类型的列。

相反,如果它是CHAR(1),请使用setString,而对您来说,任何值都表示“true”和“false”。例如,从您的问题中,您可能期望Y和N:

.setString(index, x ? "Y" : "N");