【问题标题】:How to get the return with executeQuery() in Java?如何在 Java 中使用 executeQuery() 获得回报?
【发布时间】:2014-06-02 01:52:16
【问题描述】:

我有这个代码;

String sql = "UPDATE Players SET Losses=Losses+1 WHERE UUID='" + p.getUniqueId() + "';"; 
stmt.executeUpdate(sql);

如何获取特定Player p 的当前Losses?

【问题讨论】:

    标签: java mysql sql database bukkit


    【解决方案1】:

    SELECT 查询将返回它,但您真正的问题是什么?

    String sql ="SELECT column_name,column_name FROM table_name WHERE column_name ="" ;";

    【讨论】:

      【解决方案2】:

      我会使用 Select for Update 之类的东西 -

      String query = "SELECT Losses FROM Players FOR UPDATE "
                     + "Players SET Losses=Losses+1 WHERE UUID=?";
      ps = conn.prepareStatement(query,
                             ResultSet.TYPE_FORWARD_ONLY,
                             ResultSet.CONCUR_UPDATABLE);
      ps.setString(1, p.getUniqueId());
      ResultSet rs = ps.executeQuery();
      int losses = 0;
      if (rs.next()) {
        losses = rs.getInt("Losses");
      }
      

      【讨论】:

        【解决方案3】:

        您可以获得如下损失。看起来真的很琐碎,猜你是一个绝对的初学者。

        String sql = "SELECT Losses FROM Players WHERE UUID='" + p.getUniqueId() + "';"; 
        ResultSet rs = stmt.executeQuery(sql);
        int losses = -1;
        if(rs.next()) {
            losses = rs.getInt("Losses");
        }
        

        【讨论】:

          【解决方案4】:

          您必须创建一个 SELECT 语句。就像 SELECT loss FROM Players WHERE UUID='"+p.getUniqueId()+"';"; 然后使用返回 ResultSet 的 Statement 的 executeQuery()。您可以使用迭代器从 ResultSet 对象中提取数据。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-03-01
            • 1970-01-01
            • 2020-11-25
            • 2011-11-23
            • 1970-01-01
            • 2022-07-29
            • 1970-01-01
            相关资源
            最近更新 更多