Instance d'objet de l'instruction JDBC
Voici des exemples d'utilisation des trois requêtes suivantes et des instructions d'ouverture et de clôture:
Boolean Execute (String SQL): Renvoie une valeur booléenne True, si l'objet de résultat peut être récupéré, sinon renvoie false. Utilisez cette méthode pour exécuter des instructions SQL DDL, ou lorsque vous utilisez un SQL dynamique réel.
int executeUpDate (String SQL): renvoie le nombre de lignes exécutées par l'instruction SQL affectée. Utilisez cette méthode pour exécuter et espérons obtenir certaines lignes affectées d'instructions SQL - par exemple, insérer, mettre à jour ou supprimer des instructions.
ResultSet executequery (String SQL): renvoie l'objet résultat. Utilisez cette méthode lorsque vous souhaitez obtenir un ensemble de résultats, tout comme l'utilisation d'une instruction SELECT.
Cet exemple de code basé sur l'environnement et l'installation de la base de données dans le chapitre précédent a été écrit.
Copiez l'exemple suivant jdbcexample.java, compilez et exécutez comme indiqué ci-dessous:
// Étape 1. Importez les packages requis Import Java.sql. *; Classe publique JDBCExample {// JDBC Nom du pilote et URL de la base de données State Final String jdbc_driver = "com.mysql.jdbc.driver"; chaîne finale statique db_url = "jdbc: mysql: // localhost / emp"; // les informations d'identification de la base de données static final string user = "username"; String statique final pass = "mot de passe"; public static void main (String [] args) {connexion conn = null; Déclaration stmt = null; essayez {// étape 2: registre jdbc driver class.forname ("com.mysql.jdbc.driver"); // Étape 3: Ouvrez un système de connexion.out.println ("Connexion à la base de données ..."); Conn = driverManager.getConnection (db_url, utilisateur, pass); // Étape 4: Exécuter un système de requête.out.println ("Création de déclaration ..."); STMT = Conn.CreateStatement (); String sql = "Mise à jour les employés set agent = 30 où id = 103"; // Vérifions s'il renvoie ou non un véritable ensemble de résultats. Booléen ret = stmt.Execute (SQL); System.out.println ("La valeur de retour est:" + ret.toString ()); // mettons à jour l'âge de l'enregistrement avec id = 103; int Rows = stmt.ExecuteUpDate (SQL); System.out.println ("lignes impactées:" + lignes); // Sélectionnez tous les enregistrements et affichons-les. SQL = "SELECT ID, d'abord, dernier, âge des employés"; ResultSet rs = stmt.ExecuteQuery (SQL); // Étape 5: Extraire les données de Set Set While (Rs.Next ()) {// Récupérer par nom de colonne int id = Rs.GetInt ("id"); int age = Rs.getInt ("âge"); String First = Rs.GetString ("First"); String Last = Rs.GetString ("Last"); // affiche les valeurs System.out.print ("id:" + id); System.out.print (", âge:" + âge); System.out.print (", premier:" + premier); System.out.println (", dernier:" + dernier); } // Étape 6: Environnement de nettoyage Rs.Close (); stmt.close (); conn.close (); } catch (sqlexception se) {// gérer les erreurs pour jdbc se.printStackTrace (); } catch (exception e) {// Gire les erreurs pour class.forname e.printStackTrace (); } Enfin {// Enfin Block utilisé pour fermer les ressources essayez {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // Rien que nous ne pouvons essayer {if (conn! = null) Conn.close (); } catch (sqlexception se) {se.printStackTrace (); } // fin enfin essayez} // fin essayez System.out.println ("Goodbye!"); } // fin main} // fin jdbcexampleCompilez maintenant l'exemple ci-dessus comme suit:
C:> javac jdbcexample.java
Lors de l'exécution de Jdbcexample, il produit les résultats suivants:
C:> java jdbcexample
Connexion à la base de données ... Création de déclaration ... La valeur de retour est: FalSerows impacté: 1ID: 100, âge: 18, premier: Zara, dernier: Aliid: 101, âge: 25, premier: Mahnaz, Last: Fatmaid: 102, âge: 30, premier: Zaid, dernier: Khanid: 103, âge: 302, Sumit, dernier: Mittalgoodbye!
Instance d'objet JDBC callableStatement
Voici un exemple d'une procédure stockée MySQL utilisant CallableStatement avec le getEmpName suivant:
Veuillez vous assurer que la procédure stockée a été créée dans la base de données EMP. Cela peut être fait en utilisant le navigateur de requête MySQL.
Delimiter $$ DROP Procédure Si existe `EMP`.`GetEmpName` $$ Créer la procédure` EMP`.`GETEMPNAME` (dans EMP_ID INT, OUT EMP_FIRST VARCHAR (255)) Commencez d'abord à sélectionner dans EMP_FIRST à partir des employés où ID = EMP_ID; end $$ Delimiter;
Ce code de script a été écrit en fonction de l'installation de l'environnement et de la base de données dans le chapitre précédent.
Copiez l'exemple suivant jdbcexample.java, compilez et exécutez comme indiqué ci-dessous:
// Étape 1. Importez les packages requis Import Java.sql. *; Classe publique JDBCExample {// JDBC Nom du pilote et URL de la base de données State Final String jdbc_driver = "com.mysql.jdbc.driver"; chaîne finale statique db_url = "jdbc: mysql: // localhost / emp"; // les informations d'identification de la base de données static final string user = "username"; String statique final pass = "mot de passe"; public static void main (String [] args) {connexion conn = null; CallableStatement stmt = null; essayez {// étape 2: registre jdbc driver class.forname ("com.mysql.jdbc.driver"); // Étape 3: Ouvrez un système de connexion.out.println ("Connexion à la base de données ..."); Conn = driverManager.getConnection (db_url, utilisateur, pass); // Étape 4: Exécuter un système de requête.out.println ("Création de déclaration ..."); String sql = "{appel getEmpName (?,?)}"; STMT = Conn.PrepareCall (SQL); // lier d'abord dans le paramètre, puis lier le paramètre int empid = 102; stmt.sentInt (1, empid); // Cela définirait l'ID 102 // parce que le deuxième paramètre est sorti, alors enregistrez-le stmt.registerOutParameter (2, java.sql.types.varchar); // Utilisez la méthode d'exécution pour exécuter la procédure stockée. System.out.println ("Exécution de la procédure stockée ..."); stmt.execute (); // Récupérer le nom de l'employé avec Getxxx Method String empname = stmt.getString (2); System.out.println ("nom Emp avec id:" + empid + "est" + empname); stmt.close (); conn.close (); } catch (sqlexception se) {// gérer les erreurs pour jdbc se.printStackTrace (); } catch (exception e) {// Gire les erreurs pour class.forname e.printStackTrace (); } Enfin {// Enfin Block utilisé pour fermer les ressources essayez {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // Rien que nous ne pouvons essayer {if (conn! = null) Conn.close (); } catch (sqlexception se) {se.printStackTrace (); } // fin enfin essayez} // fin essayez System.out.println ("Goodbye!"); } // fin main} // fin jdbcexampleCompilez maintenant l'exemple ci-dessus comme suit:
C:> javac jdbcexample.java
Lors de l'exécution de Jdbcexample, il produit les résultats suivants:
C:> java jdbcexample
Connexion à la base de données ... Création d'instruction ... Exécution de la procédure stockée ... Nom EMP avec ID: 102 est ZaidgoodBye!