I have:
String query = "INSERT INTO Basestations VALUES(?, ?, ?, ?, ?, ?, ?,"
+ "?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement prep = conn.prepareStatement(query);
prep.setInt(1, profile.getNetworkId());
prep.setInt(2, profile.getBaseStationId());
prep.setInt(8, profile.getLoadLevel());
prep.setInt(11, profile.getPositionX());
prep.setInt(12, profile.getPositionY());
prep.setInt(13, profile.getPort());
prep.setDouble(3, profile.getSignalStrength());
prep.setDouble(4, profile.getFrequency());
prep.setDouble(6, profile.getMaxBitrate());
prep.setDouble(7, profile.getGuaranteedBitrate());
prep.setDouble(10, profile.getRange());
prep.setString(5, profile.getNetworkType());
prep.setString(9, profile.getProvider());
prep.setString(14, profile.getCharging());
prep.setBoolean(15, true);
prep.executeUpdate(query);
and i am getting:
INFO: SQL Exception: INFO: State : 42000 INFO: Message: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' at line 1 INFO: Error : 1064
what could be wrong?
The main error is here:
But please try to put your SQL in the following form:
This will prevent your code from breaking if there is an update to the table.
In your last line you don't need pass the variable query.
So change
For:
You're passing an string representing an invalid SQL statement to the
executeUpdate()
method when you don't need to. Try just doingprep.executeUpdate();
.