java - 将查询中的 BIT 作为 Prepared Statement 中的参数传递
问题描述
我想传递一点作为 Prepared Statement 中的参数之一。我的查询应该是这样的:
query = select * from tbl_security_details('user',O::BIT)
我将查询构建为:
query = select * from tbl_security_details(?,?)
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1,"user")
ps.setString(2,"0::BIT")
但是,这会引发错误。
有人可以解释我如何从 prepare 语句中传递 0::BIT ,而不用它自己附加单引号并转换为 String 吗?
解决方案
编写准备好的语句,以便强制转换成为查询的一部分:
String query = "select * from tbl_security_details(?, ?::bit)";
java.sql.PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, "user");
ps.setString(2, "0");
这是必要的,因为您只能将常量值传递给准备好的语句,而不是 SQL 表达式。
推荐阅读
- python-3.x - 如何在 Python 中打印三角形
- sql - hive Expression Not In Group By Key (group by - having)
- typescript - TypeScript:打开一个容器
> 进入也许 > - jquery - jQuery从一个元素中只选择最后一个类
- c++ - 使用 gdi 在 winapi 窗口中的运行时更新颜色
- docker - Docker 容器(使用 Hyper-V)未使用可用内存
- angular - 为 Angular 应用程序安装深色主题包后出错
- sql - 队列分析——数据检索任务()
- java - 我的 Eclipse 的 .m2 存储库中的 Jar 文件已损坏
- c# - WPF组合框过滤器不适用于第一个字符WPF C#?