Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 8 Next »

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

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

Erstellen von eigenen Methoden im DAO welche beim Aufrufen eine Abfrage an die Datenbank schicken und das Ergebnis zurück liefern


  • Abfrage aller Objekte einer Tabelle (natives SQL Statement)

    public List<Customer> getAllCustomerNativeSQL() 
    {
    	String SQL = "SELECT * FROM CUSTOMER";
    	Query nativeQuery = em().createNativeQuery(SQL, Customer.class);
    	List<Customer> resultList = nativeQuery.getResultList();
    	
    	return resultList;
    }
  • Abfrage mit Parametern (natives SQL Statement)

    public List<Customer> getCustomersByFirstAndLastname(String lastname, String firstname) 
    {
    	String SQL = "SELECT * FROM CUSTOMER WHERE Lastname LIKE ? AND Firstname LIKE ?";
    
    	Query nativeQuery = em().createNativeQuery(SQL, Customer.class);
    	nativeQuery.setParameter(1, lastname);
    	nativeQuery.setParameter(2, firstname);
    	List<Customer> resultList = nativeQuery.getResultList();
    		
    	return resultList;
    }
  • Abfrage eines einzelnen Objektes (natives SQL Statement)

    public Customer getCustomersByID(Integer ID) 
    {
    	String SQL = "SELECT * FROM CUSTOMER WHERE ID = ?";
    
    	Query nativeQuery = em().createNativeQuery(SQL, Customer.class);
    	nativeQuery.setParameter(1, ID);
    	Customer singleResult = (Customer) nativeQuery.getSingleResult();
    
    	return singleResult;
    }






  • No labels