From b1aeea7790097ad8edea15dcadf375fac7b23121 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Sun, 25 Feb 2018 20:29:08 +0000 Subject: [PATCH] Eigene Methode fuer ID-Inkrement --- src/java/de/uhilger/radiozentrale/api/SenderApi.java | 28 ++++++++++++++++++---------- 1 files changed, 18 insertions(+), 10 deletions(-) diff --git a/src/java/de/uhilger/radiozentrale/api/SenderApi.java b/src/java/de/uhilger/radiozentrale/api/SenderApi.java index ac56940..728ffad 100644 --- a/src/java/de/uhilger/radiozentrale/api/SenderApi.java +++ b/src/java/de/uhilger/radiozentrale/api/SenderApi.java @@ -23,9 +23,6 @@ import de.uhilger.radiozentrale.daten.Sender; import de.uhilger.radiozentrale.web.Initialiser; import java.sql.Connection; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; import java.util.List; /** @@ -45,22 +42,33 @@ PersistenceManager db = getDb(); Connection c = db.getConnection(); db.startTransaction(c); - List<List<String>> list = db.select(getSql(SQL_GET_NEXT_KEY), GenericRecord.WITHOUT_BLOBS, KEY_SENDER_ID); - if(list != null && list.size() > 0) { - int nextKey = Integer.parseInt(list.get(1).get(0)); - db.execute(getSql(SQL_INCREMENT_KEY), nextKey+1, KEY_SENDER_ID, nextKey); + int nextKey = getNextId(db, KEY_SENDER_ID); + if(nextKey > -1) { sender.setId(nextKey); Object o = getDb().insert(sender, getMapper(Initialiser.MP_SENDER)); if(o instanceof Sender) { neuerSender = (Sender) o; + db.commit(c); + } else { + db.rollback(c); } } - db.commit(c); return neuerSender; } public List senderliste() { - String sql = getSql(SQL_GET_SENDER); - return getDb().select(sql, getMapper(Initialiser.MP_SENDER)); + return getDb().select(getSql(SQL_GET_SENDER), getMapper(Initialiser.MP_SENDER)); + } + + private int getNextId(PersistenceManager db, String key) { + int nextKey = -1; + List<List<String>> list = db.select(getSql(SQL_GET_NEXT_KEY), GenericRecord.WITHOUT_BLOBS, key); + if(list != null && list.size() > 1) { + nextKey = Integer.parseInt(list.get(1).get(0)); // erster Datensatz ist Ueberschrift + if(nextKey > -1) { + db.execute(getSql(SQL_INCREMENT_KEY), nextKey+1, key, nextKey); + } + } + return nextKey; } } -- Gitblit v1.9.3