当我应用检查时,Resultset对象同时给出错误和真实。 (数据库)

时间:2018-02-21 09:43:13

标签: sqlite java-8

我正在开发一个项目,我正在搜索w.r.t发件人姓名。我在测试时对set.next()的答案感到困惑。同时真假回报。无论如何,我正在使用IntelliJ IDEA的想法。我正在测试,即使我错了,它应该返回true或false,而不是两者都返回。

class MyStaticMplCanvas(MyMplCanvas):
    """Simple canvas with a sine plot."""

    def compute_initial_figure(self):
        l1 = lines.Line2D([0, 1], [0, 1], transform=self.fig.transFigure, figure=self.fig)
        l2 = lines.Line2D([0, 1], [1, 0], transform=self.fig.transFigure, figure=self.fig)
        self.fig.lines.extend([l1, l2])

下面是Out put屏幕结果,首先说的是真实但尚未发表声明

public void getDataAllbySendername(String Sendername) { try { System.out.println("----------------------------------------------------------------------"); Statement statement = mConnection.createStatement(); ResultSet set = statement.executeQuery("SELECT * from Tableit3 where sender LIKE '" + Sendername + "';"); // System.out.println("yes man yes it is"); System.out.println(set.next()); if (set.next()) { System.out.println("true man true"); System.out.println(set.next() + " 3rd time"); Setextension(set); } else System.out.println("nothing at all"); } catch (SQLException e) { System.out.println(e.getMessage()); } } //Below is the code having the testing part from above given System.out.println(set.next()); if (set.next()) { System.out.println("true man true"); System.out.println(set.next() + " 3rd time"); Setextension(set); } else System.out.println("nothing at all");

评论第一个输出语句后

true
nothing at all

输出屏幕上的文字

//System.out.println(set.next()); if (set.next()) { System.out.println("true man true"); System.out.println(set.next() + " 3rd time"); Setextension(set); } else System.out.println("nothing at all");

请有人可以澄清我发生了什么事,在哪里冒犯错误--__--

* Setextension(set)是一种方法,我创建了一个方法来防止set.get方法的代码重复。

1 个答案:

答案 0 :(得分:0)

我在更多测试后发现的答案是set.next第一次是真的,后来因为set.next()是一种迭代器类型而错误。只有在每次调用后的第一个set.next()增量之后没有更多数据时,它才会给出前1个为真但对其他1为假。