Datenbankabfragen werden in RapidClipse standardmäßig in einer Data Access Schicht (Projektmanagement > Data Access) durchgeführt und dadurch von UI, Entities und Business Logik getrennt.
Standard-Methoden im DAO
Abfragen aller Datensätze bezogen auf das verwendende DAO-Objekt - .findAll();
Code Block language java theme Confluence List<Customer> allCustomers = new CustomerDAO().findAll(); for (Customer customer : allCustomers) { ... }
Abfragen eines bestimmten Objektes über den Primärschlüssel - .find(Object idprimaryKey)
Code Block language java theme Confluence Customer specificCustomer = new CustomerDAO().find("SHG"); String contactname = specificCustomer.getContactname();
Liefert eine Liste an Objekten zurück welche auf das übergebene Beispiel passen - .findByExample(Class entity, Object example)
ACHTUNG: Auch Standardwerte wie 0 oder "" (leer String) fließen in die Prüfung mit ein, alle Werte sollten also mit null vorbelegt sein
getFilterFromExampleCode Block language java theme Confluence Customer exampleCustomer = new Customer(); exampleCustomer.setCity("Musterhausen"); exampleCustomer.setContacttitle("Herr"); List<Customer> findByExample = new CustomerDAO().findByExample(Customer.class, exampleCustomer);
Manuelles abbrechen der Transaktion mit anschließenden RollBack - .rollback()
Code Block language java theme Confluence new CustomerDAO().rollback();
Speichern von Angelegten Entities - .save(Object entity)
Code Block language java theme Confluence Customer exampleCustomer = new Customer(); exampleCustomer.setCity("Musterhausen"); exampleCustomer.setContacttitle("Herr"); Customer savedCustomer = new CustomerDAO().save(exampleCustomer);
oder
Code Block language java theme Confluence Customer exampleCustomer2 = new Customer(); exampleCustomer2.setCity("Musterhausen2"); Customer exampleCustomer3 = new Customer(); exampleCustomer3.setCity("Musterhausen3"); Customer exampleCustomer4 = new Customer(); exampleCustomer4.setCity("Musterhausen4"); Customer savedCustomer = new CustomerDAO().save(exampleCustomer2, exampleCustomer3, exampleCustomer4);
Erstellen von eigenen Methoden im DAO welche beim Aufrufen eine Abfrage an die Datenbank schicken und das Ergebnis zurück liefern
Abfrage mit einem Nativen SQL
Code Block language java theme Confluence public List<Customer> getAllCustomerNativeSQL() { String SQL = "SELECT * FROM CUSTOMER"; Query nativeQuery = em().createNativeQuery(SQL, Customer.class); List<Customer> resultList = nativeQuery.getResultList(); return resultList; }