diff options
Diffstat (limited to 'java/demo/Database/library/BookI.java')
-rw-r--r-- | java/demo/Database/library/BookI.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/java/demo/Database/library/BookI.java b/java/demo/Database/library/BookI.java index 18a86d7337e..68daf4340d7 100644 --- a/java/demo/Database/library/BookI.java +++ b/java/demo/Database/library/BookI.java @@ -78,7 +78,16 @@ class BookI extends _BookDisp try { - java.sql.PreparedStatement stmt = context.prepareStatement("UPDATE books SET title = ? WHERE id = ?"); + // First make sure the book still exists. + java.sql.PreparedStatement stmt = context.prepareStatement("SELECT * FROM books WHERE id = ?"); + stmt.setInt(1, id); + java.sql.ResultSet rs = stmt.executeQuery(); + if(!rs.next()) + { + throw new Ice.ObjectNotExistException(); + } + + stmt = context.prepareStatement("UPDATE books SET title = ? WHERE id = ?"); stmt.setString(1, title); stmt.setInt(2, id); int count = stmt.executeUpdate(); @@ -102,8 +111,17 @@ class BookI extends _BookDisp try { - // First destroy each of the authors_books records. - java.sql.PreparedStatement stmt = context.prepareStatement("DELETE FROM authors_books WHERE book_id = ?"); + // First make sure the book still exists. + java.sql.PreparedStatement stmt = context.prepareStatement("SELECT * FROM books WHERE id = ?"); + stmt.setInt(1, id); + java.sql.ResultSet rs = stmt.executeQuery(); + if(!rs.next()) + { + throw new Ice.ObjectNotExistException(); + } + + // Next destroy each of the authors_books records. + stmt = context.prepareStatement("DELETE FROM authors_books WHERE book_id = ?"); stmt.setInt(1, id); stmt.executeUpdate(); |