如何在 java NetBeans 中使用 sql 获取单个数据

Posted

技术标签:

【中文标题】如何在 java NetBeans 中使用 sql 获取单个数据【英文标题】:How to fetch a single data with sql in java NetBeans 【发布时间】:2014-04-20 12:20:52 【问题描述】:

所以我试图将数量提取到一个变量中,我可以从中更改它并将其更新为用户提供的最终值。 我正在使用的语句:

int s= sta.executeUpdate("UPDATE stockDB SET Quantity="+quantity+" WHERE Name='"+name+"' AND Size="+size+"");

所以这个语句更新了整个数量数据,但我想删除用户提供的数量而不是整个数量本身。 我应该添加什么语句来获取数量然后更新它, 我试过了:

int s= sta.executeUpdate("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");
      int quan=s;
      quan=quan-quantity;
int ss= sta.executeUpdate("UPDATE stockDB SET Quantity="+quan+" WHERE Name='"+name+"' AND Size="+size+"");

我收到此错误:

java.sql.SQLException: 没有产生行数

怎么办? 我知道我做得不对。

更新:

ResultSet rs =sta.executeQuery("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");
      String str = rs.getString("Quantity");
        int quan = Integer.parseInt(str);

     int fquan;
      fquan=quan-quantity;


      int ss= sta.executeUpdate("UPDATE stockDB SET Quantity="+fquan+" WHERE Name='"+name+"' AND Size="+size+"");

错误:

错误:游标状态无效

注意:

fquan=quan-quantity 中的数量变量是正确的。 数量是一个变量名。

【问题讨论】:

你试过name = "'; DROP TABLE stockDB; --";. 【参考方案1】:

您应该使用executeQuery() 进行选择查询。对于插入、删除和更新,使用executeUpdate() 并返回int。所以

 int s= sta.executeUpdate("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");

完全错误

executeQuery() 返回ResultSet 因此这样做

ResultSet rs =sta.executeQuery("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");

编辑

来自cmets

检索

while(rs.next())

System.out.println(rs.getString("Quantity"));


【讨论】:

你能告诉我如何将sql语句获取的数量存储到整数变量中吗? 那么 ResultSet rs 会自己存储数量吗?如果是,如何将 rs 转换为整数变量? 查看我的更新我已经编辑了行现在我得到错误:无效的光标状态 我已经按照您的原始问题回答了您的问题。我的回答将无效,因为您已经编辑了您的问题。您应该发布另一个问题 好的,谢谢你的回答帮助我获得了新的东西。

以上是关于如何在 java NetBeans 中使用 sql 获取单个数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在NetBeans中连接MySQL数据库

抛出 java.sql.SQLSyntaxErrorException:ORA-00911:无效字符,无法在 Netbeans 中找到原因 [重复]

使用 NetBeans 连接到 Java 中的 Access 数据库

java.sql.SQLSyntaxErrorException:ORA-00942:netbeans 8.0.1 中的表或视图不存在错误消息

如何在带有 NetBeans 的 Windows Java 项目中使用 HDF5

Java(netbeans):数据库已连接到 SQL Server,我需要从 netbeans 界面更新和删除数据