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