| p:abstract
| - SQLJ is an ISO standard (ISO/IEC 9075-10) for embedding SQL statements in Java programs.
Unlike JDBC, SQLJ is not an API but a language extension. Thus, SQLJ programs must be run through a preprocessor (the SQLJ translator) before they can be compiled.
Some advantages of SQLJ over JDBC:
* SQLJ tend to be shorter than equivalent JDBC programs.
* SQL syntax can be checked at compile time.
There are some disadvantages:
* SQLJ requires a preprocessing step.
* Many IDEs do not have SQLJ support.
* There is no SQLJ support for most of the common persistence frameworks, such as Hibernate. (en)
- SQLJ es un estándard ISO (ISO/IEC 9075-10) para embeber sentencias SQL en programas de Lenguaje de programación Java.
Al contrario que JDBC, SQLJ no es una API sino una extensión del lenguaje. Así, los programas SQLJ deben ejecutarse a través de un preprocesador (el traductor SQLJ) antes de que puedan ser compilados.
SQLJ tiene varias ventajas sobre JDBC:
* Los programas SQLJ son más fáciles de escribir y de mantener. Además tienden a ser más cortos que los programas JDBC equivalentes.
* Es más eficiente que JDBC dado que las sentencias SQL son parseadas y los caminos de acceso son optimizados en tiempo de compilación en lugar de en tiempo de ejecución.
* Suministra mejor control de autorización: La Autorización puede ser concedida a los programas en lugar de a los usuarios.
* Los problemas de rendimiento potenciales, tales como las consultas ineficientes debido a un mal camino de acceso, pueden ser identificados en tiempo de desarrollo.
Hay varias desventajas:
* SQLJ requiere un paso de preprocesamiento.
* Muchos IDEs no proporcionan soporte SQLJ.
* No hay soporte de SQLJ para la mayoría de frameworks de persistencia comunes, tales como Hibernate. (es)
- SQLJ (Embedded SQL) ist ein eingebettetes SQL für Java.
SQLJ ermöglicht eine direkte Einbettung von SQL-Anweisungen in Java-Code, wobei die
statischen SQL-Anweisungen zur Übersetzungszeit syntaktisch und semantisch überprüft werden können.
SQLJ bietet mehrere Vorteile:
* die Programmierung ist im Vergleich zu JDBC wesentlich einfacher, da SQLJ direkt auf Variablen des umgebenden Java-Codes zugreifen kann.
* SQLJ ist performanter als JDBC, da zur Compilierzeit Zugriffspfade ermittelt und in der Datenbank abgelegt werden können. Dadurch muss dies nicht zur Laufzeit durchgeführt werden.
* im Falle von SQLJ für IBMs DB2 besteht eine bessere Authentifizierungskontrolle, da Benutzerrechte nicht auf Basis von Tabellen, sondern auf Basis von gebundenen SQLJ Profile (Packages) geprüft werden, damit ist eine programmorientierte Berechtigung möglich.
* Der SQLJ Translator überprüft die Syntax und Semantik von SQL-Anweisungen. Es besteht so die Möglichkeit die Anweisungen gegen das Datenbankschema zu prüfen, wobei SQL-Fehler frühzeitig entdeckt und behoben werden können. Im Gegensatz hierzu werden bei Verwendung von JDBC Fehler erst zur Laufzeit erkannt.
Nachteile sind
* SQLJ-Programme müssen mittels eines Präprozessors in Java-Quelltext transformiert werden
* die SQLJ Syntax wird von vielen Entwicklungsumgebungen nicht erkannt
* SQLJ wird durch gängige Persistenz-Frameworks wie Hibernate nicht unterstützt
* Der Präprozessor versteht, Stand Anfang 2006, noch keine Elemente der Java-Syntax, die mit den Versionen 1.4 (assert) und 5.0 (Generische Typen, Extended For Loop, u.a.) eingeführt wurden.
* Der Präprozessor lädt unter Umständen Klassen, von denen die zu übersetzende Klasse abhängt. Dadurch werden ggf. Klasseninitialisierer ausgeführt, was u.U. Nebenwirkungen auslöst oder die Übersetzungszeit verlängert.
Eingebettete SQL-Anweisungen haben das folgende Format:
#sql { }
Sie beginnen mit #sql und können mehrere Zeilen umfassen. Sie können Variablen der Programmiersprache (:x ) bzw. Ausdrücke :(y + z) enthalten. (de)
- SQLJ è uno standard ISO (ISO/IEC 9075-10) per istruzioni SQL incorporate in programmi Java.
Al contrario di JDBC, SQLJ non è un'API ma un'estensione del linguaggio. In tal modo i programmi SQLJ devono essere eseguiti da un preprocessore (lo SQLJ translator) prima di essere compilati.
Alcuni vantaggi di SQLJ su JDBC:
* I programmi SQLJ tendono ad essere più brevi di quelli JDBC.
* La sintassi SQL può essere controllata in fase di compilazione.
Alcuni svantaggi di SQLJ rispetto a JDBC:
* SQLJ richiede un preprocesso.
* Molte IDE non hanno un supporto specifico per SQLJ.
* Non c'è supporto SQLJ in alcune piattaforme middleware, come Hibernate. (it)
- SQLJ(えすきゅーえるじぇい)は、コンピュータのJavaのプログラムにSQL文を埋め込む方法 (埋め込みSQL) を定めたISO標準(ISO/IEC 9075-10)である。
APIであるJDBCとは異なり、SQLJはプログラミング言語Javaを拡張したものである。そのため、SQLJプログラムを実行するためには、プログラムをコンパイルする前にプリプロセッサ(SQLJトランスレータ)で変換しなければならない。
SQLJがJDBCより優れている点は、次のとおりである。
* SQLJプログラムは、JDBCを使ったJavaプログラムより短くなることが多い。
* プリプロセス時にSQLの文法をチェックできる。
逆に劣っている点は、次のとおりである。
* プリプロセスが必要である。
* SQLJをサポートしている統合開発環境 (IDE) が少ない。
* Hibernateのような永続化フレームワーク (オブジェクトリレーショナルマッピング) でSQLJがサポートされていない。 (ja)
- SQLJ — стандарт ISO (ISO/IEC 9075-10), позволяющий из Java-программ получить доступ к базам данных, используя SQL.
В отличие от JDBC, SQLJ это не API, а расширение языка. Программы, использующие SQLJ, должны обрабатываться препроцессором перед компиляцией.
Пример:
#sql { }Категория: Java
Категория: SQL
9075-10 (ru)
|