Versions Compared

Key

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

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
    languagejava
    themeConfluence
    List<Customer> allCustomers = new CustomerDAO().findAll();
    		
    for (Customer customer : allCustomers) {
    			...
    }
  • Abfragen eines bestimmten Objektes über den Primärschlüssel - .find(Object idprimaryKey)

    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 - .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 

    Code Block
    languagejava
    themeConfluence
    getFilterFromExample
    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
    languagejava
    themeConfluence
    new CustomerDAO().rollback();
  • Speichern von Angelegten Entities - .save(Object entity)

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

    oder

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

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
    languagejava
    themeConfluence
    public List<Customer> getAllCustomerNativeSQL() 
    {
    	String SQL = "SELECT * FROM CUSTOMER";
    	Query nativeQuery = em().createNativeQuery(SQL, Customer.class);
    	List<Customer> resultList = nativeQuery.getResultList();
    	
    	return resultList;
    }