Versions Compared

Key

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

Datenbankzugriffe können direkt in SQL (natives SQL Statement) in Form von SQL-Strings übergeben werden. Auf Grund der zahlreichen Nachteile von SQL-Strings sollten diese nur in Ausnahmefällen verwendet werden. Mit JPA-SQL bietet RapidClipse eine elegante Alternative zur Verwendung von SQL-Strings.

Examples:
  • Abfrage einer Tabelle - Liefert alle Datensätze zurück.

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


  • Abfrage mit Parameter

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


  • Datensatz über die ID suchen

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


Hinweis:


  • Vorteile von SQL-Strings
    • Absetzen beliebiger, auch proprietärer SQL-Statements möglich
    • Anfangs einfacher als Java Query APIs, z.B. JPA Criteria API
  • Nachteile von SQL-Strings 

...