Raz*_*r22 0 java mysql sql jdbc
如果buyid(主键)是特定值,我正在尝试更新列量.
UPDATE portfolio set amount=40 WHERE buyid=3
Run Code Online (Sandbox Code Playgroud)
我使用JDBC和MySql,每次我尝试执行语句时都会遇到以下异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法中有错误; 检查与您的MySQL服务器版本对应的手册,以便在第1行的'buyid = 3'附近使用正确的语法
表结构组合:
buyid int
username varchar
stockname varchar
priceperstock float
amount int
Run Code Online (Sandbox Code Playgroud)
Javasourcecode:
public void sellStock(int buyid, int amount, float currentprice, String user) {
...
try {
stmt = this.conn.createStatement();
System.out.println(fetchedamount);
System.out.println("UPDATE portfolio
SET amount=" + fetchedamount
+ " WHERE buyid=" + buyid);
stmt.execute("UPDATE stockman.portfolio
SET amount=" + fetchedamount
+ "WHERE buyid=" + buyid+"");
// update capital
newmoney = amount * currentprice + oldmoney;
} catch (SQLException ee) {
ee.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
在stmt.execute()您生成的查询就像
"UPDATE stockman.portfolio set amount=23WHERE buyid=54 "
这23Where是一整个字符串,所以你必须在这两者之间留出空间.
给间距"和在哪里 像下面这样:
" WHERE buyid="
Run Code Online (Sandbox Code Playgroud)
并删除最后一个 +""