一个简单的问题:我的客户遇到这样的情况:他的数据库带有varchar字段,并且相应的jdbc代码正在存储/检索布尔值.
我想布尔值false和true将被转换为“ 0”和“ 1”,但是我想对此进行确认(我无法在线找到确切的行为规范,也许取决于每个驱动程序,在这种情况下为Oracle).
我知道我可以自己做实验,但是我想在*.com上尝试一下!
感谢您的回答,
埃里克
解决方法:
我同意这样的答案,即语义是高度特定于数据库的,这就是为什么我认为重要的答案是您不应该这样做. JDBC驱动程序中的更改或类似更改可能导致隐式行为中断.
相反,如果使用原始JDBC,则让代码接受布尔值并将其转换为适当的字符串(“ true”或“ false”是显而易见的选择),然后将此值设置为VARCHAR列.从VARCHAR列读取时,执行相反的操作,引发或处理异常情况,即String不是所期望的布尔值之一.