JDBC,MySQL:将位转换为BIT(M!= 1)列
我是使用JDBC + MySQL的新手。
我有几个1/0值,我想用PreparedStatement粘贴到数据库中。 目标列是BIT(M!= 1)。 我不清楚使用哪种setXXX方法。 我可以很容易地找到数据出来的参考资料,但它是如何进入我的。
这些值有效地作为应用程序使用的对象中有序的布尔集合。 另外,我偶尔会从1/0字符的平面文本文件中导入数据。
在MySQL中设置BIT(M)
列
对于M==1
setBoolean(int parameterIndex, boolean x)
来自javadoc
将指定参数设置为给定的Java布尔值。 驱动程序在将其发送到数据库时将其转换为SQL BIT值。
对于M>1
对于BIT(M)
的支持,其中M!=1
对于JDBC是有问题的,因为BIT(M)
仅需要“完整”SQL-92并且只有少数DB支持它。
在这里检查映射SQL和Java类型:8.3.3 BIT
以下适用于MySQL(至少使用MySQL 5.0.45,Java 1.6和MySQL Connector / J 5.0.8)
... PreparedStatement insert = con.prepareStatement( "INSERT INTO bittable (bitcolumn) values (b?)" ); insert.setString(1,"111000"); ...
这使用MySQL的特殊b’110101010’语法来设置BIT列的值。
您可以将get / setObject与字节数组(byte [])一起使用。 每个字节中包含8位,最低有效位在最后一个数组元素中。
- Java:列出已插入的摄像头
- 目标org.apache.maven.plugins执行attach-javadocs:maven-javadoc-plugin:3.0.0:jar使用Java10失败
- .NET中的Class.forName()等效?
- 是否可以将JavaScript变量传递给Scriptlet中的Java代码
- 限制Java进程的总内存消耗(在Cloud Foundry中)
- 使用java来修改文件内容
- JSplitPane精确分裂50%
- Mockito Matchers之间有什么区别是A,any,eq和同样的?
- 如何匹配包含“/”的@pathVariable的Spring @RequestMapping?