Quelle est la difference entre jdbc et sqlj?


Réponse 1:

Dans les fichiers Java normaux, vous utilisez JDBC pour interagir avec la base de données. Chaque fois que vous exécutez un DML (sélectionnez, insérez, supprimez, ...), la phrase doit être optimisée, analysée pour créer le plan d'accès puis effectuer l'action. Lorsque vous devez le faire plusieurs fois, il peut être coûteux de répéter le même processus à chaque fois.

Au lieu de cela, SQLJ est une combinaison entre Java et SQL. Vous écrivez vos phrases comme vous le faites dans un visualiseur de base de données, et au moment de la précompilation, les phrases seront analysées. Cela signifie que les phrases seront statiques et qu'un package dans la base de données sera créé et contiendra le plan d'accès. Cela signifie également que la requête est analysée une seule fois, compile le temps et s'exécute plusieurs fois.

JDBC est plus pour les requêtes dynamiques, comme select qui sont construites en fonction d'un ensemble de paramètres, et chaque fois qu'ils sont différents. SQLJ est pour les requêtes statiques, qui ont la même structure.

Développer en SQLJ est très facile, et finalement, au moment de la précompilation, le processeur va extraire les phrases SQL, créer un fichier de profil à lier dans la base de données, et aussi il va créer un ensemble de fichiers java, qui contiendra JDBC "optimisé"

Vous pouvez mélanger SQLJ et JDBC dans un fichier, en tirant le meilleur de chaque monde. Par exemple, déclarer une sélection pour la mise à jour, puis itérer et modifier une ligne est très concis dans SQLJ.

Il est vrai que SQLJ n'est pas très populaire, mais c'est le problème lorsque les développeurs ne pensent que dans leur programme, sans analyser comment accéder aux données, les développeurs écrivent uniquement du code, et lorsque les programmes sont publiés en production, les problèmes de performances sont toujours les mêmes. SQLJ offre un accès aux données plus flexible que DBA apprécie beaucoup.

vérifiez stackoverflow pour plus de détails.


Réponse 2:

Pas familier avec SQLJ, j'ai donc jeté un coup d'œil et copié la meilleure définition donnée par Google:

SQLJ est un titre de travail obsolète pour les efforts visant à combiner Java et SQL.

Le mot clé est «obsolète». Plus utilisé, s'il l'a jamais été.

La partie 0 décrit l'intégration des instructions SQL dans les programmes Java.

Mmm, ça ne semble pas être une bonne idée… :-) Comme la mauvaise idée, Scala a dû intégrer XML dans la syntaxe, mais je m'éloigne du sujet…

JDBC est le moyen officiel et actuel d'interagir avec les bases de données (relationnelles). Il définit une API, pour interroger et mettre à jour les données dans une base de données. Les fournisseurs de bases de données, comme Oracle ou MySQL, fournissent des pilotes suivant cette API, permettant un accès spécifique à leur base de données.

Il existe d'autres moyens (NoSQL, ORM, etc.) mais cela est hors sujet.