Préface
La procédure stockée est stockée dans la base de données et est appelée à nouveau après la première compilation et n'a plus besoin d'être compilée. L'utilisateur l'exécute en spécifiant le nom de la procédure stockée et en donnant des paramètres (si la procédure stockée a des paramètres).
Java appelle les procédures stockées par MySQL, qui nécessitent une connexion JDBC et une éclipse d'environnement
Tout d'abord, vérifiez les procédures stockées de la base de données dans MySQL, puis écrivez des appels de code
MySQL> Afficher l'état de la procédure; + ------ + ------------- + ----------- + ---------------- + --------------------- + ----------------------------------------------- + --------- + ---------------------- + ------------------ + ------------------------ + | DB | Nom | Type | Défini | Modifié | Créé | Security_Type | Commentaire | caractères_set_client | collation_connection | Collation de la base de données | + ------ + ------------- + ----------- + ---------------- + --------------------- + --------------------- + --------------- + --------- + ---------------------- + ------------------ + -------------------- + | Livre | Findallbook | Procédure | root @ localhost | 2016-09-04 11:13:31 | 2016-09-04 11:13:31 | Défini | | GBK | gbk_chinese_ci | utf8_general_ci || Livre | pro_test | Procédure | root @ localhost | 2016-11-13 08:27:17 | 2016-11-13 08:27:17 | Défini | | GBK | gbk_chinese_ci | utf8_general_ci || Livre | pro_user | Procédure | root @ localhost | 2016-11-13 08:44:34 | 2016-11-13 08:44:34 | Défini | | GBK | gbk_chinese_ci | utf8_general_ci | + ------ + ------------- + ----------- + ---------------- + -------------------------- + ----------------------- + --------------- + ---------- + ---------------------- + ------------------ + -------------------- + Rows in Set (0.01 SEC) Findallbook; + ------------- + ------------------------ + ----------------------------------------------------------------------------------------------- + ---------------------- + ---------------------- + -------------------- + | Procédure | SQL_MODE | Créer une procédure | caractères_set_client | collation_connection | Collation de la base de données | + ------------- + ------------------------ + ------------------------------------------------------------------------------------------- + ---------------------- + ---------------------- + -------------------- + | Findallbook | NO_Engine_Substitution | Créer Definer = `root` @` LocalHost` Procédure `FindallBook` () Démarrer Sélectionner * dans TB_Books; end | GBK | gbk_chinese_ci | UTF8_GENERAL_CI | + ------------- + ------------------------ + ------------------------------------------------------------------------------------------- + ---------------------- + ------------------ + ------------------------ + Row in Set (0.00 Sec)
1. Structure du répertoire de projet
2. Book.java
package com.scd.book; Livre de classe publique {nom de chaîne privée; // Nom du livre Private Double Prix; // Prix Private int BookCount; // Auteur de chaîne privée de quantité; // Auteur public String getName () {//system.out.println(name); nom de retour; } public void setName (string name) {this.name = name; } public double getPrice () {prix de retour; } public void setPrice (double prix) {this.price = prix; } public int getBookCount () {return bookCount; } public void SetBookCount (int bookCount) {this.bookCount = bookCount; } public String getAuthor () {return auteur; } public void setAuthor (String Auteur) {//system.out.println(Author); this.author = auteur; }}3. findbook.java
package com.scd.book; import java.sql.callablestatement; import java.sql.connection; import java.sql.drivermerManager; import java.sql.resultSet; import java.sql.sqlexception; @Return Connection Object * / Connexion publique getConnection () {Connection Conn = NULL; // Connexion de la base de données try {class.forname ("com.mysql.jdbc.driver"); // Chargez le pilote de base de données et enregistrez-le à l'adresse du lien de la base de données du pilote / * * / string url = "jdbc: mysql: // localhost: 3306 / book? Useunicode = true & caractèrescoding = utf-8"; String username = "root"; String mot de passe = "123456"; / * Créer un lien de connexion * / conn = driverManager.getConnection (URL, nom d'utilisateur, mot de passe); } catch (classNotFoundException e) {e.printStackTrace (); } catch (sqlexception e) {// TODO Block de catch généré automatiquement e.printStackTrace (); } return conn; // Renvoie la connexion de la base de données} / ** * Données de requête via les procédures stockées * @return list <Book> * / public list <Book> findall () {list <book> list = new ArrayList <Book> (); // Instanciate list object connexion Conn = getConnection (); // Créer une connexion de base de données essayez {// appelle la procédure stockée callableStatement cs = conn.preparecall ("{appel findallbook ()}"); ResultSet rs = cs.ExecuteQuery (); // Exécuter l'opération de requête et obtenir le jeu de résultats while (Rs.Next ()) {book book = new book (); // Instancier le livre d'objets Book.SetName (Rs.getString ("Name")); // Attribuez le nom d'attribut Book.SetPrice (Rs.GetDouble ("Price")); // Attribuez le prix d'attribut Price.SetBookCount (Rs.GetInt ("BookCount")); // Attribuez le livre d'attribut BookCount.SetAuthor (Rs.getString ("auteur")); // Attribuez l'attribut de l'auteur list.add (livre); }} catch (exception e) {e.printStackTrace (); } Retour List; // Renvoie la liste} / ** * PROCÉDURE CALLES DE FONCTION principale (testées) * @param args * / public static void main (String [] args) {findbook fb = new findBook (); //System.out.println (fb.findall ()); pour (livre de livre: fb.findall ()) {System.out.print (book.getName () + "-" + book.getprice () + "-"); System.out.print (book.getBookCount () + "-" + book.getAuthor ()); System.out.println (); }}}4. Cliquez avec le bouton droit sur l'exécution comme -> Application Java, sortie de la console
5. Exécuter des instructions SQL dans les procédures stockées
mysql> sélectionner * à partir de tb_books;+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 67.42 | 775 | Mr.Cheng | + ------------------ + ------- + ----------- + ---------- + rangées en jeu (0,00 sec)
Résumer
Ce qui précède est l'intégralité du contenu de Java appelant les procédures stockées MySQL. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer.