如何用jdbc为postgresql的位列插入值

如何用jdbc为postgresql的位列插入值,postgresql,jdbc,bit,Postgresql,Jdbc,Bit,如果preparedStatement sql是固定的,如何进行插入 表模式 如果不存在ttqs_a(b位(1)),则创建表; 代码 try(PreparedStatement ps=conn.prepareStatement(“插入ttqs_a值(?)){ ps.setObject(1,1,Types.BIT); ps.execute(); } 误解 我认为您不能告诉JDBC驱动程序在数据库端使用数据类型bit,您必须添加类型转换: 插入ttqs_a值(转换(?位)) 然后使用可转换为位

如果preparedStatement sql是固定的,如何进行插入

表模式
如果不存在ttqs_a(b位(1)),则创建表;
代码
try(PreparedStatement ps=conn.prepareStatement(“插入ttqs_a值(?)){
ps.setObject(1,1,Types.BIT);
ps.execute();
}
误解
我认为您不能告诉JDBC驱动程序在数据库端使用数据类型
bit
,您必须添加类型转换:

插入ttqs_a值(转换(?位))
然后使用可转换为
位的任何类型,例如
文本

stmt.setString(1,“0”);
整数

stmt.setInt(1,0);

谢谢,这很有效。setObject(..,..,Types.Bit)的行为是由设计或bug决定的?如果您想存储布尔值,那么为什么不使用
布尔值
Exception in thread "main" org.postgresql.util.PSQLException: ERROR: column "b" is of type bit but expression is of type boolean