com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
Posted by: Agha Jamil
Date: August 11, 2020 07:15PM

Hi Team,

i am struggling to correct above mention error whilst completing the project.
please see the source code and error listed for your kind reference.

A Guidance will be much appreciated!
************************************

package crudOperations;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import model.Book;

/**
* @author Agha Jamil 19091930
*
*/
public class UpdateQuery {

private Connection connection;

// Constructor
public UpdateQuery(String user, String password) {

// set up the connection string and concatenate on user
String url = "jdbc:mysql://mudfoot.doc.stu.mmu.ac.uk:6306/"+user;

try {
Class.forName("com.mysql.jdbc.Driver").newInstance();

// use the driver to set up the connection
this.connection = DriverManager.getConnection(url, user, password);

// to eliminate the error we surround it by multi-catch
// added SQL exception to existing clause
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block

e.printStackTrace();
}


}


public void doUpdate(Book book) {
String query = "update books set title=?, author=?, year=?, edition=?, publisher=?, isbn=?, cover=?, condition=?, price=?, notes=? where book_id =?";
// string query is created for update
// ? is a blank space that needs to be filled in with prepared statement and try catch
try {
PreparedStatement ps = connection.prepareStatement(query);

ps.setString(1, book.getTitle()); // query is filled in with correct values
ps.setString(2, book.getAuthor());
ps.setInt(3, book.getYear());
ps.setInt(4, book.getEdition());
ps.setString(5, book.getPublisher());
ps.setString(6, book.getIsbn());
ps.setString(7, book.getCover());
ps.setString(8, book.getCondition());
ps.setInt(9, book.getPrice());
ps.setString(10, book.getNotes());
ps.setInt(11, book.getBook_id());

ps.executeUpdate();



} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
}

***************************************************

The ERROR:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'condition='Good', price=650, notes='First Edition and signed' where book_id =1' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1912)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2133)
at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2067)
at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5175)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2052)
at crudOperations.UpdateQuery.doUpdate(UpdateQuery.java:62)
at Controllers.UpdateBookServlet.doPost(UpdateBookServlet.java:78)
at Controllers.UpdateBookServlet.doGet(UpdateBookServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

Options: ReplyQuote


Subject
Written By
Posted
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
August 11, 2020 07:15PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.