# Eclipse + Derby + Delete Row



## AndreasMarkus (23. Dez 2012)

Hallo an Alle, 

ich möchte aus einer Derby-Datenbank mit eclpise ein Zeile per "Button"-Klick löschen. 

Nur leider finde ich im Netz relativ wenig dazu. :rtfm:
Ich habe mich selbst mal versucht das umzusetzten... :shock:

Mein Code sieht so aus in JAVA aber der ist meiner Meinung nach total für die Tonne... 

Hättet Ihr ein paar Tipps? 

Frohe Weihnachten und DANKE! 


```
public void delete(long manschaftsId) throws Exception {
         
         EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); try {
                   tx.begin();
                   Query q = em.createQuery("DELETE b FROM MANSCHAFT b");
                   manschaft = q.getResultList();
                   tx.commit();
                 } catch (Exception e) {
                   tx.rollback();
                 }
                 return manschaft;
               }
       }
```


----------



## turtle (23. Dez 2012)

Zum ersten schreibst Du nirgends, mit welcher Persistenzlösung Du arbeiten möchtest, nehme aus dem Code-Schnipsel aber dass es JPA sein soll.

Zweitens ist das Löschen eines Datensatzes keine Query.

Aussderdem würde Dein Code ALLE Zeilen löschen, weil Du keine where-Clause angibst, die das Löschen einschränkt. Aber in JPA arbeitet man auch mehr mit Objekten, die in einer DB persisitiert werden und davon ist bei deinem Code nichts zu sehen.

Also mein Vorschlag wäre, dass Du Dich in das Persistenframework Deiner Wahl einarbeitest!!

Wenn Du dich bereits mit SQL auskennst und da einigermassen firm bist, schlage ich immer myBATIS vor. Der Vorteil hier, dass Du ziemlich dicht an der DB arbeitest und genau weiss, welches Kommando zur DB geht und was da zurückgeliefert wird.

Zu myBTAIS habe ich mal einen kleinen BLOG-Eintag geschrieben.


----------



## AndreasMarkus (23. Dez 2012)

Hi Turtle, 

DANKE für deine Antwort. Ich habe nochmal ein bisschen Nachgelesen nach deinem Post. 
Danke für den Vorschlag mit myBatis. Ich möchte nur ein einfaches Statement haben um eine bestimmte Zeile zu löschen. Alles andere wäre viel zu viel Aufwand. 

Bin ich damit schon näher an einer Lösung dran? Wenn ja, kleiner Tipp für mich wo der Fehler ist? Oder sollte ich von der Idee abstand nehmen, da mein Halbwissen mir hier nichts mehr bringt? 

Liebe Grüße & Frohe Weihnachten


```
public void delete(long manschaftsId) throws Exception {
    em.getTransaction().begin();

    em.createQuery("DELETE FROM MANSCHAFT WHERE manschaftsId "('"manschaftsController.selectedManschaft.getLogin()"')")
        .executeUpdate();

    em.getTransaction().commit();
    em.close();
    emf.close();}
```


----------



## AndreasMarkus (4. Jan 2013)

Keiner mehr eine Idee? Bin langsam echt am Verzweifeln...


----------

