繁体   English   中英

将列名作为PreparedStatement的输入参数

[英]Having a Column name as Input Parameter of a PreparedStatement

我已经在这里(以及其他论坛)使用过搜索,但是没有找到与我要执行的操作完全相同的答案。

我知道可以很容易地以其他方式完成它,这只是我为大学课程编写的一个小沙盒框架...在真实的环境中,我只会使用Spring,Hibernate等。

因此,我所做的就是使用POJO为自己编写一个小型的通用数据访问层,并使用通用方法来检索,检查数据或将数据插入数据库(Oracle)。 大多数操作是通过PreparedStatements完成的。

只要我没有联接,它就可以工作...是否可以将Column作为参数放置?

例:

Table A has Attribute X + others
Table B has Attribute Y + others

带查询SELECT * FROM A,B WHERE "A"."X" = ? PreparedStatement

然后填写“ B”。“ Y”作为参数...

数据库不会抛出错误或异常,但是执行该语句后返回的ResultSet为空。 只是不可能做,还是我只是想逃脱一些?

我正在使用PreparedStatement.setString(int index, String value)来填充参数...缺乏想法,我可以使用其他setX方法...

再说一次,在一个真实的项目中,我永远不会自己编写代码,而是使用诸如Spring或Hibernate之类的东西,而不是重新发明轮子,但我认为这是我自己编写这样的通用小数据访问层的有趣练习。

不,JDBC不允许这样做。 只能设置列值。 如果要动态更改sql语句,则必须在创建PreparedStatement之前进行更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM