JDBC PreparedStatement führt zu einem MySQL-Syntaxfehler
Ich erhalte den Fehler"Sie haben einen Fehler in Ihrer SQL-Syntax. Suchen Sie im Handbuch zu Ihrer MySQL-Serverversion nach der richtigen Syntax für '' orderr '' in Zeile 1." - also ich vermute der fehler ist das ich zwei benutzt habe' aber in meinem Code habe ich keine verwendet'. NB die Tabelle heißt tatsächlich orderr.
public void insertIntoDatabase(String table, Object... entries) { // take a table and
Connection con = connect(); //add entries
PreparedStatement preparedStatement = null;
PreparedStatement preparedStatement2 = null;
ResultSet rs = null;
StringBuffer columnNames = new StringBuffer();
StringBuffer sbEntries = new StringBuffer();
for (int i = 0; i < entries.length; i++) {
if (entries[i] instanceof Integer)
sbEntries.append((Integer) entries[i]);
else if (entries[i] instanceof String)
sbEntries.append((String) entries[i]);
if (i != entries.length - 1)//if not last entry add
sbEntries.append(" ,"); // a ' ,'.
}
try {
preparedStatement = con.prepareStatement("select * from ? ;");
preparedStatement.setString(1, table);
preparedStatement2 = con
.prepareStatement("Insert into ?( ? ) values ( ? );");
ResultSet resultSet = preparedStatement.executeQuery(); // get the
// number of
// columns
ResultSetMetaData rsmd; // for the table
rsmd = resultSet.getMetaData();
int columnCount = rsmd.getColumnCount();
for (int i = 1; i < columnCount + 1; i++) { // get column names, add to
columnNames.append(rsmd.getColumnName(i)); // to sb
if (i != columnCount)
columnNames.append(" ,");
}
columnCount = rsmd.getColumnCount();
preparedStatement2.setString(1, table);
preparedStatement2.setString(2, columnNames.toString()); //add sb's to statement
preparedStatement2.setString(3, sbEntries.toString());
preparedStatement2.executeUpdate();
} catch (SQLException e) {
System.out.println("2" + e.getMessage());
}
finally{
try {
if (rs != null) {
rs.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
if(preparedStatement2 != null){
preparedStatement2.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
System.out.print("3" +e.getMessage());
}
}
}