Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Datenbankabfragen werden By default, database queries in RapidClipse standardmäßig in der Data Access Schicht (Projektmanagement > are performed in the data access layer (Project Management > 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 Intities 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 

...

. Thus, database queries are separated from UI entities and business logic. For each entity, a corresponding data access object (DAO) is available in the data access layer (standard when entities are created and imported). The DAO acts as the interface to the database. The database query itself is performed by using a custom method that is invoked on the DAO. This method queries the database and returns the query result. The DAO also provides some standard methods.

Standard query methods

  • Query all records related to the DAO object in use: .findAll ();

    Code Block
    languagejava
    themeConfluence
    List<Customer> allCustomers = new CustomerDAO().findAll();
    		
    for (Customer customer : allCustomers) {
    			...
    }
  • Abfragen eines bestimmten Objektes über den Primärschlüssel - Query a particular object by using the primary key: .find(Object primaryKey).

    Code Block
    languagejava
    themeConfluence
    Customer specificCustomer = new CustomerDAO().find("SHG");
    String contactname = specificCustomer.getContactname();
  • Liefert eine Liste an Objekten zurück welche auf das übergebene Beispiel passen Return a list of objects that fit the given example - .findByExample(Class entity, Object example)
    ACHTUNG: Auch Standardwerte wie 0 oder ATTENTION: Even the 0 or "" (leer String) fließen in die Prüfung mit ein, alle Werte sollten also mit null vorbelegt sein empty string) default values are tested. Therefore, all values should be filled with the null value at a minimum.

    Code Block
    languagejava
    themeConfluence
    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 -Manually abort the transaction with subsequent rollback: .rollback ().

    Code Block
    languagejava
    themeConfluence
    new CustomerDAO().rollback();
  • Speichern von Angelegten Entities - Save the created entities: .save (Object entity).

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

    oderor

    Code Block
    languagejava
    themeConfluence
    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);

...

Custom queries