如何将字符串变量添加到JDBC Firebird连接上的SQL查询



我正在尝试从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尝试了以相同的结果尝试 - 它仅在没有字符串变量的情况下工作。

有什么想法我做错了什么?

编辑:解决问题!字符串变量来自斑点字段,其中有一些空值。调用装饰函数删除了这些函数。

我注意到在"列3"行中,您在开口报价后和关闭报价之前有一个空间。除非您故意尝试匹配以空间开头和结尾的字符串,否则您找不到结果。如果没有,请切出空间:

column3 = '" + stringvariable + "' ";

相关内容

  • 没有找到相关文章

最新更新