Existe-t-il une bibliothèque Java open-source pour parsingr les instructions SQL?
Si possible, il devrait être suffisamment personnalisable ou flexible pour pouvoir également parsingr (ou au moins ignorer) la syntaxe propre au fournisseur (telle que les définitions de tablespace Oracle ou la clause LIMIT de MySQL).
Dans le cas contraire, le respect ssortingct du standard SQL est également une bonne chose.
Mise à jour: j’en ai besoin pour deux choses:
ANTLR3 dispose d’une grammaire SQL ANSI disponible. Vous pouvez l’utiliser pour créer votre propre parsingur.
ANTLR4 a une grammaire SQL .
Analyseur
Si vous avez besoin d’un parsingur, il devrait y avoir un parsingur dans la base de code d’ Apache Derby .
Traiter avec SQL spécifique au fournisseur
Vous voudrez peut-être examiner la méthode .native () sur l’object Connection jdbc que vous pouvez lui transmettre pour les requêtes neutres du fournisseur qui seront traitées ultérieurement dans les requêtes spécifiques du fournisseur.
Général SQL Parser pour Java n’est pas open source, mais est exactement ce que vous recherchez.
Essayez Zql
Hibernate utilise ANTLR pour l’parsing SQL et SQL.
JSqlParser est également une bonne option. Bien que certains bogues (ou certaines fonctionnalités ne soient pas implémentées) lors de l’parsing d’Oracle pl / sql. voir son forum pour plus de détails.
Donc, si vous parsingz oracle pl / sql, ANTLR est recommandé.
Qu’est-ce que vous voulez faire avec le SQL analysé? Je peux recommander quelques implémentations Java de Lex / Yacc ( BYACC / J , Java Cup ) avec lesquelles vous pouvez utiliser une grammaire SQL existante.
Si vous voulez réellement faire quelque chose avec la grammaire analysée résultante, je pourrais vous suggérer de regarder Derby , une firebase database SQL open source écrite en Java.