通过 stmt.executeUpdate 更新 access 数据库中的整数

Posted

技术标签:

【中文标题】通过 stmt.executeUpdate 更新 access 数据库中的整数【英文标题】:Update integer in access database through stmt.executeUpdate 【发布时间】:2019-03-13 11:37:22 【问题描述】:

有人可以帮我格式化我的 stmt.executeUpdate 语句。 下面是我用来将“动物”的可用性从真设置为假的基本语句。(布尔)

stmt.executeUpdate("UPDATE Animals SET Availability = 'False' WHERE AnimalID = '" + animalId + "'");

但想知道如何格式化它,以便通过获取“产品”的库存水平并减去客户所下订单的数量来更新整数。(整数)

stmt.executeUpdate("UPDATE Animals SET Availability = 'stocklevel - quantity' WHERE ProductID = '" + productId + "'");

【问题讨论】:

无关,但是:请学会正确使用PreparedStatement 通常不需要也不建议保存聚合计算。需要时计算。查看allenbrowne.com/AppInventory.html。可用性如何在一个 UPDATE 中取一个布尔值,然后在另一个 UPDATE 中取一个数量? 道歉。我的意思是这个。 stmt.executeUpdate("UPDATE Products SET StockLevel= 'stocklevel - quantity' WHERE ProductID = '" + productId + "'"); 【参考方案1】:

通过用单引号括起新值,您的代码当前正尝试将字段的值设置为文字字符串:stocklevel - quantity

假设stocklevelquantity 也是表Animals 中的字段,只需删除值周围的这些引号,即:

stmt.executeUpdate("UPDATE Animals SET Availability = stocklevel - quantity WHERE ProductID = '" + productId + "'");

【讨论】:

以上是关于通过 stmt.executeUpdate 更新 access 数据库中的整数的主要内容,如果未能解决你的问题,请参考以下文章

java 调用mysql的事务如何传入查询参数?

java date类型 怎么 插入 时间 到 数据库

用java 写向两个表同时插入数据,第二个表的一个字段是取第一个表的ID值

有没有办法从准备好的语句中检索自动增量 ID

SQL注入漏洞增加更多平衡? [复制]

执行 sql 语法的正确语法是啥?