将列名称作为PreparedStatement的输入参数

我已经在这里(以及其他论坛)使用了搜索,但是没有找到我正在尝试的答案。

我知道它可以通过其他方式轻松完成,这只是一个小沙箱框架,我正在为大学课程编写代码……在真实环境中,我只需要Spring,Hibernate等。

所以我所做的就是用POJO编写一个小的通用数据访问层,使用通用方法检索,检查或插入数据到数据库(Oracle)。 其中大部分是通过PreparedStatements完成的。

只要我没有连接,这是有效的…是否可以将列作为参数放入?

例:

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

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

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

数据库不会抛出错误或exception,但执行语句后返回的ResultSet为空。 这是不可能的,还是我只是错过了一些逃脱?

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

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

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