我正在尝试从 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
- 它只在没有字符串变量的情况下工作。
任何想法我做错了什么?
编辑:问题解决了!Stringvariable 来自 BLOB 字段,其中包含一些空值。调用修剪功能删除了那些。