java - "Escape"绑定(bind)变量?在 JDBC SQL 搜索中

标签 java sql jdbc escaping bind-variables

所以我用 Java 进行编码,使用 JDBC 和 SQL 从数据库获取数据。我无法更改数据库中的数据或列名。一切都很顺利,直到今天我被告知需要数据库的另一列。

所以我尝试将列名添加到 select 语句中,但是出现错误:

“java.sql.SQLException:[Microsoft][ODBC Microsoft Access 驱动程序]参数太少。应为 2 个。”

以下是该列的变量和名称:String est = "\"Estimates Complete?\"";

经过大量研究,似乎 JDBC 中有一种叫做“绑定(bind)变量”的东西,?恰好是其中之一。我一直在寻找有关如何创建绑定(bind)变量的论坛帖子和答案,但没有找到有关如何“转义”它们的信息。我无法更改“估算完成”的值吗?列,我的程序需要它。

如果我尝试 String est = "Estimates Complete?";,那么我得到的错误是:

java.sql.SQLException:[Microsoft][ODBC Microsoft Access 驱动程序]COUNT 字段不正确

有谁知道可以吗?谢谢。

编辑:代码示例:

Statement s = conn.createStatement();
String tableName = "\"Open WRs V2\"", data1 = "\"Project Name\"",est = "Estimates Complete?";
String selTable = "SELECT " + data1  + "," + est+ " FROM " + tableName;
s.execute(selTable);
ResultSet rs = s.getResultSet();
while ((rs.next())) {
    String name = (rs.getString(1));
    String estimate= rs.getString(2);
    System.out.println("test: "+estmate);
}
s.close();

最佳答案

关于java - "Escape"绑定(bind)变量?在 JDBC SQL 搜索中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709402/

相关文章:

使用 Oracle 内部 JDBC 驱动程序调用 createClob() 时出现 java.lang.NoSuchMethodError

hadoop - 无法使用IP地址连接远程hiveserver2

java - 如何将 Java Hashmap 保存为 sql 表中的属性并将其加载回来

Java 对象类,构造函数链接

java - 请确认您从正确的目录调用了 Maven

sql - '(' 附近的语法不正确。期待身份证件

sql - REGEXP_SUBSTR 与 INSTR 和 SUBSTR 的性能和可读性

java - XSD 模式 - JAXB 编码(marshal)处理 - 数据存储(JPA/JDO)往返

java - Set(int index, E element)方法链表

sql - 然后将查询添加到子查询不会产生任何结果