当前位置: 首页 > 面试题库 >

将列名作为PreparedStatement的输入参数

阴永福
2023-03-14
问题内容

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

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

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

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

例:

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

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

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

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

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

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


问题答案:

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



 类似资料:
  • 问题内容: 我在SQL表中有一些列,例如text_en,text_es,text_de。现在,我只想根据语言从一列中检索值。因此,我创建了一个sql字符串, 并在vb代码中使用了 sql,但是sql返回了该列的名称,而不是该列的值。我如何获得价值? 问题答案: 你也可以

  • 虽然 Rust 在捕获临时变量的方式大多选择不带标注,但在编写函数时,这种不确定性是不允许的。当以闭包作为输入参数时,闭包的完整类型必须使用以下的其中一种 trait 来标注。它们的受限程度依次递减,依次是(原文:In order of decreasing restriction, they are): Fn:闭包需要通过引用(&T)捕获 FnMut:闭包需要通过可变引用(&mut T)捕获 F

  • 问题内容: 我想创建一个 存储过程 ,我想在表中插入值。但是我不知道我必须在哪个字段中插入值,而在 运行时,我将决定应在哪个字段中插入值 。我想做的是 如上例所示,是否可以在存储过程中传递这种类型的参数? 我也想使用条件 声明@Query nvarchar(4000)声明@ Query1 nvarchar(4000)声明@ParmDefinition nvarchar(500); Descript

  • 问题内容: 我有3类调用,和。 在我的课程中,我想要一个这样的方法: 因此,例如,我想: 如何将类名作为参数,并基于该类名从类名创建适当的对象? 问题答案: 使用反射是可能的。这里是给定的className(作为字符串传递)。此类将在内存中搜索(应该已经加载)。 作为字符串传递时要实例化的类的名称应 完全限定

  • 问题内容: 使用JAX-RS和(java8)时出现问题。 我想使用JSON将这样的对象传递到JAX-RS方法中: 我得到的异常是: :没有合适的构造找到型[简单的类型,类在[来源不能实例从JSON对象(需要添加/启用类型信息)::] ; 行:2,列:3] 如何创建某种将json-dates映射到的拦截器?我尝试实现a ,但是如果is是另一个类中的 字段 ,则我必须为每个持有a的类编写一个(据我所知

  • 使用JAX-RS和(java8)时出现问题。 我想使用JSON将这样一个对象传递到JAX-RS方法中: 我得到的例外是: