Versions Compared

Key

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

In Java werden Daten in Form von Objekten verwaltet. Relationale Datenbanken legen Daten in Tabellen ab. Die beiden Konzepte sind grundlegend verschieden, sodass objektorientierte Programmiersprachen wie Java und relationele Datenbanken als nicht kompatibel gelten. Um das Problem zu lösen, werden die im Java Programm vorhandenen Klassen auf Datanbanktabellen abgebildet. Ein Objekt entspricht einer Ziele, während ein Attribut einer Tabellenspalte entspricht. Dieser Vorgang wird als objektrelationales Mapping (OR-Mapping) bezeichnet. 2010 wurde diese Vorgehensweise zum Java Standard (JPA Standard - Java Persistence API). Anwendungen, die OR-Mapping durchführen werden als JPA-Provider oder OR-Mapper bezeichnet. RapidClipse verwendet standardmäßig Hibernate als JPA-Provider, data is managed in the form of objects. Relational databases store data in tables. The two concepts are intrinsically different; as such, object-oriented programming languages like Java and relational databases are considered to be incompatible. To solve the problem, the classes in the Java program are mapped to database tables. In a database table, an object is represented by a row and an attribute by a column. This process is known as object-relational mapping (ORM). In 2010, this process became standard in Java (JPA Standard: Java Persistence API). Applications that perform OR mapping are referred to as JPA providers or OR mappers. By default, RapidClipse uses the Hibernate JPA provider.

Panel
borderColor#f5f5f5
bgColor#fcfcfc
borderStylesolid
HinweisNote: JPA (Java Persistence API) ist der Standard. Ein JPA-Provider oder OR-Mapper ist eine reale Java Anwendung, die den JPA-Standard umsetzt, z.Bis the standard. A JPA provider or OR mapper is a real Java application, which implements the JPA standard, e.g. Hibernate, OpenJPA, EclipseLink. By default, RapidClipse verwendet standardmäßig uses Hibernate.

Durch den Einsatz von Hibernate können Entwickler und Anwendung zur Laufzeit objektorientiert auf die Daten einer relationalen Datenbank zugreifen. Datenbankzugriffe werden nicht mehr in SQL sondern in vollständig Java formuliert. Dafür stehen dem Entwickler verschiedene Java APIs zur Verfügung, z.BHibernate allows both the developer and the application to access the data of a relational database at runtime in an object-oriented manner. Database accesses are no longer framed in SQL; rather, they are framed completely in Java. For this, different Java APIS are available to the developer, e.g.

  • JPQL / HQL (Hiberante-spezifische Variante von Hibernate-specific variant of JPQL) - An  Based on SQL angelehnt, verwendet jedoch SQL-Strings was zahlreiche Nachteile mit sich bring; however, it uses multiple SQL strings and this, in itself, can have many disadvantages.
  • JPA Criteria API - Sehr leistungsfähig, gilt jedoch als komplex und wird deshalb in der Praxis überwiegend für dynamische Queries verwendet Very efficient, yet complex. As such, it is mainly for dynamic queries.
  • JPA-SQL - Ermöglicht es Abfragen in SQL-Syntax zu schreiben und generiert daraus Javacode auf Basis der   Enables queries to be written in SQL syntax and generates Java code based on the JPA Criteria API . Kombiniert die Vorteile von SQL und from it. Combines the advantages of SQL and JPA Criteria API.

Erst zur Laufzeit werden die SQL Statements passend für die aktuell angebundene Datenbank automatisch von Hibernate generiert und an die Datenbank versendet. Datenbankanwendungen die mit Hibernate realisiert werden sind deshalb datenbankunabhängig. Aus kompatibilitätsgründen können spezielle Datenbankfunktionen mit JPA nicht genutzt werden. Es lassen sich jedoch auch native SQL Statements in Form von SQL-Strings absetzen und somit alle Stärken und Fähigkeiten einer Datenbank nutzen. Die datenbankunabhängigkeit geht dadurch jedoch verloren und die Verwendung von SQL-Strings hat erhebliche NachteileThe SQL statements are automatically generated, and Hibernate sends them at runtime to match the currently connected database. The database applications that are implemented with Hibernate are, therefore, database independent. Due to compatibility reasons, certain database functions cannot be used with JPA. However, even native SQL statements can be used in the form of SQL strings and as such, the user can access all the strengths and capabilities of a database. As such, the database independence gets lost, and the use of SQL strings has considerable disadvantages.