mysql - Java : SQL syntax error for entering values in Table -


i trying add 2 methods withdraw , deposit money in bank class . database name javatest . table name bank , following code . problem when run code compiler says you have error in sql syntax; did check code 3-4 times unable please me .

public static void main(string[] args)  {      connection connection= null ;      statement stmt = null ;      try      {         class.forname("com.mysql.jdbc.driver");         connection= drivermanager.getconnection("jdbc:mysql://localhost:3306/javatest","root","");         stmt= connection.createstatement();         withdrawfromchecking(connection, stmt, new bigdecimal(100), 1);          depositinsaving(connection, stmt, new bigdecimal(444), 1);         stmt.executebatch();         system.out.println("done");     }      catch (classnotfoundexception e) {e.getmessage();}     catch (sqlexception e) {e.printstacktrace();}           {         if(connection!=null){try {connection.close();} catch (sqlexception e) {e.printstacktrace();}}         if(stmt!=null){try {stmt.close();} catch (sqlexception e) {e.printstacktrace();}}     } }   public static void withdrawfromchecking(connection connection ,statement stmt,  bigdecimal amount , int id ) throws sqlexception {     stmt.addbatch("update bank  set checkingbalance = checkingbalance-"+amount+"where id="+id); } public static void depositinsaving(connection connection ,statement stmt,  bigdecimal amount , int id ) throws sqlexception {     stmt.addbatch("update bank  set savingbalance = savingbalance+ "+amount+"where id="+id); } } 

error comes line - stmt.executebatch(); when run program

edit : exact error statement

java.sql.batchupdateexception: have error in sql syntax; check manual corresponds mysql server version right syntax use near 'id =1' @ line 1 @ com.mysql.jdbc.statementimpl.executebatch(statementimpl.java:1193) @ mypackage.bankaccount.main(bankaccount.java:24)

in code (line 24 stmt.executebatch();

in both of sqls, there no space between concatenation of amount , word where -- looks this: checkingbalance-100where id=.

place space before both where words.

stmt.addbatch("update bank  set checkingbalance = checkingbalance-"   //       +- add space here   //       v   +amount+" id="+id); 

Comments

Popular posts from this blog

plot - Remove Objects from Legend When You Have Also Used Fit, Matlab -

java - Why does my date parsing return a weird date? -

Need help in packaging app using TideSDK on Windows -