java - 如何将字符串变量添加到 jdbc firebird 连接上的 SQL 查询

标签 java sql jdbc firebird jaybird

我正在尝试从 Java 应用程序查询 Firebird 数据库。该查询包含 2 个整型变量和 1 个字符串。查询如下所示:

Statement statement = conn.createStatement();

ResultSet rs = statement.executeQuery("select * from table where
  column1 < " + intvariable1 + " and ( 
  column2 > " + intvariable2 +" or column2 = 0) and 
  column3 = '" + stringvariable + "' ";

Rs.next();
syso(rs.getInt(1));

看来ResultSet是空的,但是当我使用硬编码字符串值而不是变量时,我得到了预期的结果。

我也尝试过 preparedstatements具有相同的结果 - 它仅在没有字符串变量的情况下工作。

知道我做错了什么吗?

编辑:问题已解决! String 变量来自 BLOB 字段,其中包含一些空值。调用修剪函数删除了那些。

最佳答案

我注意到在“column3”行中,在开盘报价之后和收盘报价之前有一个空格。除非您故意尝试匹配以空格开头和结尾的字符串,否则您将找不到结果。如果没有,请剪掉空格:

column3 = '" + stringvariable + "' ";

关于java - 如何将字符串变量添加到 jdbc firebird 连接上的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919504/

相关文章:

java - 通过使用<img th:src = “@{/images/anabada.jpeg}”无法加载thyemleaf中的图像

java - 右侧 singleton.getinstance() 赋值所需的 CodeModel 帮助

java - 在 Java 中重绘图形

sql - 如何根据阈值删除除部分记录之外的所有记录?

jdbc - PreparedStatement.setNull(int parameterIndex, int sqlType)

java - 插入多行 Realm android

php - 准备好的语句可能会导致内存泄漏?

php - 重构 PHP 脚本以在 2 个数据库服务器之间执行 mysql 更新

mysql - java.sql.BatchUpdateException : Row x was cut by GROUP_CONCAT()

java - 如何使用流API从数据库加载数据?