English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O exemplo a seguir usa CallableStatement e o procedimento armazenado getEmpName () MySQL-
Certifique-se de que o procedimento armazenado foi criado no banco de dados EMP. Você pode usá-lo no navegador do MySQL para completá-lo.
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 ;
Este exemplo de código foi escrito com base nas configurações de ambiente e banco de dados dos capítulos anteriores.
Copie e cole o seguinte exemplo no arquivo JDBCExample.java e compile e execute conforme所示:
//passo1.Importar os pacotes necessários import java.sql.*; public class JDBCExample { // nome do driver JDBC e URL do banco de dados static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // credenciais do banco de dados static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; CallableStatement stmt = null; try{ //passo2: registrar driver JDBC Class.forName("com.mysql.jdbc.Driver"); //passo3: estabelecer conexão System.out.println("Conectando ao banco de dados..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //passo4: executar consulta System.out.println("Criando statement..."); String sql = "{call getEmpName (?, ?)}"; stmt = conn.prepareCall(sql); //primeiro vincular os parâmetros IN, então os parâmetros OUT int empID = 102; stmt.setInt(1, empID); // isto configurará o ID como102 // porque o segundo parâmetro é de saída (OUT), então registre-o stmt.registerOutParameter(2, java.sql.Types.VARCHAR); //usar o método execute para executar o procedimento armazenado. System.out.println("Executando procedimento armazenado..." ); stmt.execute(); //usar o método getXXX para obter o nome do funcionário String empName = stmt.getString(2); System.out.println("Nome do Empregado com ID:" + empID + " é " + empName); catch(SQLException se conn.close(); catch(SQLException se){ //Tratamento do erro JDBC se.printStackTrace(); catch(Exception e){ //Tratamento do erro Class.forName } Usado para fechar recursos //if(stmt!=null) try{ stmt.close(); catch(SQLException se }2{ } try{ if(conn!=null) conn.close(); catch(SQLException se){ se.printStackTrace(); } } System.out.println("Adeus!"); }//Fim do main }//Fim do JDBCExample
Agora, vamos compilar o exemplo acima, conforme mostrado:
C:\>javac JDBCExample.java C:\>
ExecuçãoJDBCExampleProduzirá o seguinte resultado:-
C:\>java JDBCExample Conectando ao banco de dados... Criando sentença... Executando procedimento armazenado... Nome do Empregado com ID:102 é Zaid Adeus! C:\>