Java 如何使用准备好的语句更新mysql数据库中的值

Java 如何使用准备好的语句更新mysql数据库中的值,java,mysql,prepared-statement,Java,Mysql,Prepared Statement,所以我在一个数据库中有一个值,我想得到它,然后减去从用户输入中得到的另一个值,然后重新写入这个新值,代替以前在数据库中的值。我听说这可以通过一个不太确定的准备好的声明来实现 谢谢。如果要经常重用该语句,可以通过创建一个准备好的语句并更新每个调用的值来避免数据库解析每个调用的SQL语句所花费的处理时间——准备好的语句将有一个用于变量值的占位符,只有在创建准备好的语句时,才会解析SQL stm = conn.prepareStatement("update MyTable set Col1 = Co

所以我在一个数据库中有一个值,我想得到它,然后减去从用户输入中得到的另一个值,然后重新写入这个新值,代替以前在数据库中的值。我听说这可以通过一个不太确定的准备好的声明来实现


谢谢。

如果要经常重用该语句,可以通过创建一个准备好的语句并更新每个调用的值来避免数据库解析每个调用的SQL语句所花费的处理时间——准备好的语句将有一个用于变量值的占位符,只有在创建准备好的语句时,才会解析SQL

stm = conn.prepareStatement("update MyTable set Col1 = Col1 - ? where KeyCol = ?");
然后,每次有一个新的键值和关联的偏移量时,都按如下方式进行设置:

stm.setInteger(1,newOffset);  // assign newOffset value to first ?
stm.setInteger(2,keyVal);
stm.execute();  // executes the statement with the specified values

我们需要知道您的表和属性是什么。如果它类似于一个名为users的表,其中每个用户都有一定数量的点,则可以执行如下SQL语句:

SELECT points FROM users WHERE username='somename';
UPDATE users SET points = newpoints WHERE username = 'somename';
然后,您可以使用新的积分变量“newpoints”更新该分数,方法如下:

SELECT points FROM users WHERE username='somename';
UPDATE users SET points = newpoints WHERE username = 'somename';

这个网站有几个非常有用的命令:

是的,它可以。到目前为止你都尝试了什么?欢迎来到StackOverflow。请参观,拿着书读一读。你的问题读起来像是“我太懒了,不想自己查这个,也许我可以找人帮我写下来”,这样就离题了。如果您尝试了,但无法使其工作,那么您可以发布您所做的以及错误消息和/或意外行为,我们将尽力帮助您。但首先你必须自己努力,不知道如何使用事先准备好的陈述。通过读取数据库中的值,然后减去我的值,然后重新写入,我已经做了很长一段时间了。但我正试图用一个预先准备好的语句来减少代码。重复的感谢链接有助于lotworks完美的工作。非常感谢