English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
L'exemple suivant utilise CallableStatement et la procédure stockée getEmpName () MySQL-
Assurez-vous que cette procédure stockée a été créée dans la base de données EMP. Vous pouvez le faire avec un navigateur de requêtes MySQL.
DELIMITER $$ DROP PROCEDURE IF EXISTS `EMP`.`getEmpName` $$ CREATE PROCEDURE `EMP`.`getEmpName` (IN EMP_ID INT, OUT EMP_FIRST VARCHAR(255)) BEGIN SELECT first INTO EMP_FIRST FROM Employees WHERE ID = EMP_ID; END $$ DELIMITER ;
L'exemple de code suivant est écrit en fonction des paramètres de l'environnement et de la base de données des quelques chapitres précédents.
Copiez et collez l'exemple suivant dans le fichier JDBCExample.java, puis compilez et exécutez comme suit :
//étape1.Importer les bibliothèques nécessaires import java.sql.*; public class JDBCExample { // nom du pilote JDBC et URL de la base de données static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // credentials de base de données static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; CallableStatement stmt = null; try{ //étape2: enregistrer le pilote JDBC Class.forName("com.mysql.jdbc.Driver"); //étape3: établir la connexion System.out.println("Connexion à la base de données..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //étape4: exécuter la requête System.out.println("Création de l'étatment..."); String sql = "{call getEmpName (?, ?)}"; stmt = conn.prepareCall(sql); //d'abord liez les paramètres IN, puis liez les paramètres OUT int empID = 102; stmt.setInt(1, empID); // cela fixera l'ID à102 // puisque le second paramètre est OUT, le registre stmt.registerOutParameter(2, java.sql.Types.VARCHAR); //Exécutez la procédure stockée en utilisant la méthode execute. System.out.println("Exécutant la procédure stockée... "); stmt.execute(); //recherchez le nom de l'employé en utilisant la méthode getXXX String empName = stmt.getString(2; System.out.println("Nom d'employé avec l'ID : ") + empID + " is " + empName); catch(SQLException se conn.close(); }catch(SQLException se){ //Handle JDBC error se.printStackTrace(); }catch(Exception e){ //e.printStackTrace(); }finally{ Used to close resources //if(stmt!=null) try{ stmt.close(); catch(SQLException se }2{ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } System.out.println("Goodbye!"); }//End main }//End JDBCExample
Now let's compile the above example as follows:
C:\>javac JDBCExample.java C:\>
RuntimeJDBCExample,it will produce the following results-
C:\>java JDBCExample Connecting to database... Creating statement... Executing stored procedure... Emp Name with ID:102 is Zaid Goodbye! C:\>