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

Sch*_*ger 5 java sql parameters prepared-statement

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

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

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

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

例:

Table A has Attribute X + others
Table B has Attribute Y + others
Run Code Online (Sandbox Code Playgroud)

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

然后填写"B"."Y"作为参数......

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

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

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

小智 5

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