- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我与 Oracle 数据库的连接如下:
String selectSQL = "SELECT ?,supplier_name FROM supplier WHERE supplier_id = ?";
PreparedStatement preparedStatement = con.prepareStatement(selectSQL);
preparedStatement.setString(1, "supplier_id");
preparedStatement.setInt(2, 1);
ResultSet rs2 = preparedStatement.executeQuery();
while (rs2.next()) {
String userid = rs2.getString(1);
String username = rs2.getString(2);
System.out.println(userid);
System.out.println(username);
}
con.close();
};
问题是第二个参数按照我想要的方式传递,这意味着
supplier_id = 1
但是我对第一个参数有疑问。每次只传递字符串,所以我的查询看起来像
select "supplier_id", supplier_name FROM supplier WHERE supplier_id = ?
而不是
select supplier_id, supplier_name FROM supplier WHERE supplier_id = ?
因此,我没有从表中获取对应供应商 ID 的值,而是获取字符串“supplier_id”。我究竟做错了什么?我应该改变什么来获取值而不是字符串?
最佳答案
无法以这种方式创建动态查询,您必须使用普通的字符串操作。参数只能用于值,如字符串、数字等,不能用于名称。
在你的情况下,可以做类似的事情
String sqlTemplate = "SELECT <id_column>,supplier_name FROM supplier WHERE supplier_id = ?";
String selectSQL = sqlTemplate.replace("<id_column>", "supplier_id");
关于java - 选择查询中的 JDBCPreparedStatement 和参数 (?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60353940/
鉴于 PreparedStatement 的以下代码,我使用占位符 (?) 来填充 String: String sql = "SELECT SUM(Premium), SUM(AgentComm)\
当我想将PreparedStatement初始化用于给定类的所有实例时,放置PreparedStatement初始化的最佳位置是什么? 到目前为止,我的解决方案是创建用于打开和关闭的静态方法,但我认为
我正在尝试使用PreparedStatement 进行批量更新,其中您获取的数据因可用数据而异。 简单的例子: 您有一个包含 x 列和 y 列的表。您的输入数据是仅存在修改后的列的行的表示。因此,对于
这个问题已经有答案了: Variable column names using prepared statements (7 个回答) 已关闭 6 年前。 我与 Oracle 数据库的连接如下: St
有人可以告诉我为什么准备好的语句返回 null 吗?下面是查询数据库的代码: package beans; import java.sql.*; public class ConnectToDB {
我目前正在编写一个与 Oracle 数据库交互的 Java Web 应用程序。我正在使用PreparedStatements,因为Hibernate 会使事情变得太复杂。 由于写入数据库的程序中存在错
我正在使用 JDBC 连接从 Access 数据库获取数据。数据库设计不是我的控制。数据库中有些列带有“?”包含在他们的名称中,例如:Open?、Paid? 等等。 当我尝试使用PreparedSta
这个问题已经有答案了: Variable column names using prepared statements (7 个回答) 已关闭 6 年前。 我与 Oracle 数据库的连接如下: St
这个问题与 Using query_to_xml in PostgreSQL with prepared statements 非常相似但是那里的解决方案似乎不适用于我的情况。这实际上是一个非常奇怪的
我正在使用 Xerials SQLite JDBC 驱动程序,并且想要做您能想象到的最简单的事情: 我创建了下表: CREATE TABLE IF NOT EXISTS households (hos
这个问题已经有答案了: Inserting null to an Integer column using JDBC (2 个回答) 已关闭 5 年前。 当使用原始 JDBC 时,您可以参数化 Pre
我正在使用 postgres 数据库并使用 JDBC。大多数事情都工作正常,但我在这段代码中遇到以下错误,似乎我没有正确使用 setString/setDate 与$ 风格的参数化查询。废话不多说,代
我认为我的 Oracle JDBC 准备语句遗漏了一些明显的内容。我正在尝试创建一个从 TABLE 中选择列 A 的 PreparedStatement ,其中 B 是参数。例如,这也是我总结的测试代
我有一个java中的PreparedStatement。我向它提供包含“?”的查询,例如 Select .... where date >= ? 这没问题,当我尝试使用以下方法设置参数时: prepa
如果您使用 javascript 库“Leaflet”及其插件“Draw”,那么您可以检索如下所示的 geojson: { "type" : "Polygon", "coordinat
我是Java中PreparedStatement的新手,我似乎无法找出解决我的问题的最佳解决方案。我想查询表中 NULL 或 NOT NULL 的记录。 阅读PreparedStatement (Ja
try { Class.forName("org.apache.hive.jdbc.HiveDriver"); } catch (ClassNotFoundException
我是一名优秀的程序员,十分优秀!