withdraw and deposit
Bank Class の money に2 つのメソッドを追加しようとしています。私のDatabase name is javatest
。 table name is bank
以下はコードです。問題は、このコード コンパイラを実行すると、 You have an error in your SQL syntax;
コードを 3 ~ 4 回チェックしたが、実際にはコードを取得できないと表示されることです。助けてください。
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();}
finally
{
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);
}
}
この行でエラーが発生します-stmt.executeBatch();
プログラムを実行する と
編集:正確なエラーステートメント
java.sql.BatchUpdateException: SQL 構文にエラーがあります。MyPackage.BankAccount.main(BankAccount) の com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:1193) の 1 行目の「id =1」付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 .java:24)
私のコードでは (24 行目は stmt.executeBatch(); です)。