Datenbankzugriffe - Data Access

Datenbankabfragen werden in RapidClipse standardmäßig in der Data Access Schicht (Projektmanagement > Data Access) durchgeführt. Dadurch werden Datenbankabfragen von UI, Entities und Business Logik getrennt. In der Data Access Schicht wird für jedes Entity ein entsprechendes Data Access Object (DAO) zur Verfügung gestellt (beim Anlegen und Importieren von Entities standardmäßig), das die Schnittstelle zur Datenbank bildet. Die Datenbankabfrage selbst erfolgt mit Hilfe einer benutzerdefinierten Methode, die auf dem DAO aufgerufen wird, die Datenbankabfrage absetzt und danach das Abfrageergebnis zurückliefert. Das DAO stellt bereits einige Standard-Methoden zur Verfügung.

Standard Query-Methoden 

  • Abfragen aller Datensätze bezogen auf das verwendende DAO-Objekt - .findAll();

    List<Customer> allCustomers = new CustomerDAO().findAll();
    		
    for (Customer customer : allCustomers) {
    			...
    }
  • Abfragen eines bestimmten Objektes über den Primärschlüssel - .find(Object primaryKey)

    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 

    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()

    new CustomerDAO().rollback();
  • Speichern von Angelegten Entities - .save(Object entity)

    Customer exampleCustomer = new Customer();
    exampleCustomer.setCity("Musterhausen");
    exampleCustomer.setContacttitle("Herr");
    		
    Customer savedCustomer = new CustomerDAO().save(exampleCustomer);

    oder

    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);

Benutzerdefinierte Queries