Est-ce que quelqu'un a essayé de créer des procédures stockées en utilisant la base de données H2?Comment créer une procédure stockée en utilisant la base de données H2?
Répondre
Pour accéder à la base de données dans une fonction Java, vous avez besoin d'une connexion. Pour H2, il y a deux façons d'obtenir une telle connexion:
Solution 1: Si le premier paramètre de la fonction Java est une java.sql.Connection
, la base de données fournit la connexion. Pour SQL, il s'agit d'un paramètre "caché", ce qui signifie que vous ne pouvez pas et ne devez pas le définir explicitement. Ceci est documenté: User-Defined Functions and Stored Procedures, "Fonctions qui nécessitent une connexion". Exemple:
CREATE ALIAS QUERY AS $$
ResultSet query(Connection conn, String sql) throws SQLException {
return conn.createStatement().executeQuery(sql);
} $$;
CALL QUERY('SELECT * FROM DUAL');
Solution 2: Pour la compatibilité avec Apache Derby et Oracle, vous pouvez ouvrir une nouvelle connexion au sein de la fonction Java à l'aide DriverManager.getConnection("jdbc:default:connection")
. Cette fonctionnalité est disponible dans H2 version 1.3.151 et plus récente, et elle est désactivée par défaut. Pour l'activer, ajoutez ;DEFAULT_CONNECTION=TRUE
to the database URL. C'est une fonctionnalité problématique car le pilote Oracle JDBC va essayer de résoudre cette URL de base de données si elle est chargée avant le pilote H2. Donc, fondamentalement, vous ne pouvez pas utiliser la fonction si le pilote Oracle est chargé (je considère cela comme un bug dans le pilote Oracle).
toujours fermer vos instructions lorsque vous en avez fini avec elles ... Déclaration s = conn.createStatement(); try {return s.executeQuery (sql);} finally {s.close();} – jcalfee314
Pour H2 (et c'est à propos de H2) peu importe si vous fermez la déclaration ou non. Mais oui, généralement la déclaration devrait être fermée. –
@Thomas Mueller vos exemples de documentation sont si pauvres mettriez-vous des exemples CRUD – Dunken
- 1. Comment créer une procédure stockée pour créer une base de données
- 2. comment créer une procédure stockée à partir d'une procédure stockée
- 3. Comment créer une procédure stockée qui appelle sp_refreshview pour chaque vue de la base de données?
- 4. comment exécuter une procédure stockée en continu?
- 5. Créer une procédure stockée Mysql en utilisant vB .NET
- 6. Comment appeler une procédure stockée via webservice en utilisant C#?
- 7. Création d'une procédure stockée dans une autre base de données
- 8. Paging Subsonic en utilisant la procédure stockée
- 9. Comment définir une variable entière en utilisant la procédure stockée
- 10. Insérer une procédure stockée ne crée pas Base de données
- 11. Procédure stockée de référence dans une autre base de données?
- 12. en utilisant une procédure stockée pour la connexion en C#
- 13. Comment créer une base de données dynamique en utilisant jQuery?
- 14. Créer une clause Select dans la procédure stockée?
- 15. Comment exécutez-vous une procédure stockée en utilisant Castle ActiveRecord?
- 16. Comment créer une base de données MySQL en utilisant JDBC
- 17. Récupère les données de la base de données et les affiche en utilisant la procédure stockée (asp.net)
- 18. Procédure stockée exécutant une autre procédure stockée
- 19. Appel de la procédure stockée
- 20. insertion en bloc en utilisant la procédure stockée
- 21. procédure d'appel Oracle procédure stockée utilisant createNativeQuery
- 22. Comment créer une procédure stockée MySQL à partir de PHP?
- 23. supprimer de gridview en utilisant la procédure stockée
- 24. Comment configurer une procédure stockée pour accéder à une table dans une autre base de données
- 25. Déployer une procédure stockée SQL en C#
- 26. Exécuter MySQL procédure stockée en utilisant la ligne de commande
- 27. Comment puis-je utiliser une procédure stockée dans une base de données MySQL avec Zend Framework?
- 28. Définir dynamiquement le nom de la base de données dans une procédure stockée SQL Server?
- 29. H2 (embedded) Base de données en Java - StackOverflowError
- 30. Transactions en boucle dans la procédure stockée
Mon problème avec l'utilisation des fonctions Java est différent de [celui-ci] (http://stackoverflow.com/questions/3098905/how-to-create-stored-procedure-using-h2-database). Je ne sais pas comment accéder aux tables dans une telle fonction (créer une connexion n'a aucun sens là-dedans, n'est-ce pas)? – maaartinus
Il est toujours utile de regarder le manuel: [H2: Fonctions définies par l'utilisateur et procédures stockées] (http://www.h2database.com/html/features.html#user_defined_functions) – NullUserException