Spring JDBC DELETE FAQ: Can you provide some examples of using SQL DELETE queries using Spring JDBC (Spring Dao classes and methods)?
Here are a few Spring Dao examples, specifically JDBC/SQL DELETE examples.
Spring JDBC delete example #1: Delete a record by the primary key
In this first Spring JDBC DELETE example, I pass in an id
parameter, which represents the primary key in my hosts
database table. This JDBC/SQL statement deletes the record from that table that matches that id
field.
In this example I also show how to catch a Spring JDBC exception in a Spring DAO method. Here I catch the exception (a RuntimeException), log it (using System.err.println()
), and then re-throw it so my controller class can deal with it properly.
public void deleteObject(int id) { String deleteStatement = "DELETE FROM hosts WHERE id=?"; try { getSimpleJdbcTemplate().update(deleteStatement, id); } catch (RuntimeException runtimeException) { System.err.println("***NagiosHostDao::deleteObject, RuntimeException occurred, message follows."); System.err.println(runtimeException); throw runtimeException; } }
Spring Dao JDBC delete example #2: Delete all records matching a parameter
Here's a second Spring JDBC example where I pass in a hostId
parameter, which in this case is a foreign key in my host_contacts
table. This SQL DELETE statement deletes all records in that table where the host_id
field matches the parameter that I pass in.
Here's the source code for this Spring DAO method:
public void deleteFromHostContacts(int hostId) { String DELETE = " DELETE FROM host_contacts WHERE host_id=?"; getSimpleJdbcTemplate().update(DELETE, hostId); }
In this Spring DAO example I don't try to catch a RuntimeException, which is different than my approach in the first example. There are pros and cons to each approach, but I generally prefer to do my logging as close to the exception as possible, which was show in my first Spring DAO example above.