Instância do objeto de declaração JDBC
Aqui estão exemplos de uso das três consultas a seguir e de abertura e fechamento:
Execute booleano (string sql): retorna um valor booleano true, se o objeto ResultSet puder ser recuperado, caso contrário, retornará false. Use este método para executar instruções SQL DDL ou ao usar o SQL dinâmico real.
Int ExecuteUpdate (String SQL): Retorna o número de linhas executadas pela instrução SQL afetada. Use este método para executar e espero obter algumas linhas afetadas de instruções SQL - por exemplo, inserir, atualizar ou excluir instruções.
ResultSet ExecuteQuery (String SQL): Retorna o objeto ResultSet. Use este método quando deseja obter um conjunto de resultados, assim como o uso de uma instrução SELECT.
Este código de amostra baseado no ambiente e na instalação do banco de dados no capítulo anterior foi escrito.
Copie o seguinte exemplo jdbcexample.java, compilar e execute como mostrado abaixo:
// Etapa 1. Importar pacotes necessários String final estática db_url = "jdbc: mysql: // localhost/empp"; // credenciais de banco de dados estático final string user = "nome de usuário"; estático final string pass = "senha"; public static void main (string [] args) {conexão conn = null; Instrução stmt = null; tente {// Etapa 2: Registre JDBC Driver Class.ForName ("com.mysql.jdbc.driver"); // Etapa 3: abra um sistema de conexão.out.println ("conectando ao banco de dados ..."); Conn = DriverManager.getConnection (db_url, usuário, passa); // Etapa 4: execute um sistema de consulta.out.println ("criando declaração ..."); stmt = conn.createstatement (); String sql = "Atualizar funcionários definir idade = 30 onde id = 103"; // Vamos verificar se ele retorna um conjunto de resultados verdadeiros ou não. Boolean ret = stmt.execute (sql); System.out.println ("O valor de retorno é:" + ret.toString ()); // Vamos atualizar a idade do registro com id = 103; int linhas = stmt.executeUpdate (SQL); System.out.println ("linhas impactadas:" + linhas); // Vamos selecionar todos os registros e exibi -los. sql = "Selecione ID, primeiro, último, idade dos funcionários"; ResultSet rs = stmt.executeQuery (SQL); // Etapa 5: extraia dados do conjunto de resultados enquanto (rs.Next ()) {// recuperar pelo nome da coluna int id = rs.getInt ("id"); int age = rs.getInt ("idade"); String primeiro = rs.getString ("primeiro"); String last = rs.getString ("last"); // Exibir valores system.out.print ("id:" + id); System.out.print (", idade:" + idade); System.out.print (", primeiro:" + primeiro); System.out.println (", last:" + last); } // Etapa 6: ambiente de limpeza rs.close (); stmt.close (); Conn.Close (); } catch (sqlexception se) {// manipula erros para jdbc SE.printStackTrace (); } catch (Exceção e) {// manipula erros para class.ForName E.PrintStackTrace (); } finalmente {// Finalmente o bloco usado para fechar os recursos tente {if (stmt! = null) stmt.close (); } catch (sqLexception SE2) {} // nada que possamos fazer tente {if (conn! = null) conn.close (); } catch (sqLexception SE) {SE.printStackTrace (); } // Finalmente, finalmente tente} // End Try System.out.println ("Adeus!"); } // END PRINCIPAL} // END JDBCEXAMPLEAgora compile o exemplo acima da seguinte forma:
C:> javac jdbcexample.java
Ao executar o JDBCExample, ele produz os seguintes resultados:
C:> Java Jdbcexample
Connecting to database...Creating statement...Return value is : falseRows impacted : 1ID: 100, Age: 18, First: Zara, Last: AliID: 101, Age: 25, First: Mahnaz, Last: FatmaID: 102, Age: 30, First: Zaid, Last: KhanID: 103, Age: 30, First: Sumit, Last: MittalGoodbye!
Instância do objeto JDBC Callablestatement
Aqui está um exemplo de um procedimento armazenado MySQL usando o CallableStatement junto com o seguinte getempName ():
Verifique se o procedimento armazenado foi criado no banco de dados EMP. Isso pode ser feito usando o navegador de consulta MySQL.
Delimitador $$ PROCEDIMENTO DE DESLIGADO Se existir `Emp`.
Esse código de script foi escrito com base na instalação do ambiente e do banco de dados no capítulo anterior.
Copie o seguinte exemplo jdbcexample.java, compilar e execute como mostrado abaixo:
// Etapa 1. Importar pacotes necessários String final estática db_url = "jdbc: mysql: // localhost/empp"; // credenciais de banco de dados estático final string user = "nome de usuário"; estático final string pass = "senha"; public static void main (string [] args) {conexão conn = null; Callablestatement stmt = null; tente {// Etapa 2: Registre JDBC Driver Class.ForName ("com.mysql.jdbc.driver"); // Etapa 3: abra um sistema de conexão.out.println ("conectando ao banco de dados ..."); Conn = DriverManager.getConnection (db_url, usuário, passa); // Etapa 4: execute um sistema de consulta.out.println ("criando declaração ..."); String sql = "{ligue para getempName (?,?)}"; stmt = Conn.Preparecall (SQL); // liga -se primeiro no parâmetro e depois vincula o parâmetro int empid = 102; stmt.setInt (1, empid); // Isso definiria ID como 102 // porque o segundo parâmetro está disponível, então registre -o stmt.RegisterOutParameter (2, java.sql.types.varchar); // Use o método Execute para executar o procedimento armazenado. System.out.println ("Execução do procedimento armazenado ..."); stmt.execute (); // recuperar o nome do funcionário com o método getxxx string empname = stmt.getString (2); System.out.println ("Nome emp com ID:" + empid + "é" + empname); stmt.close (); Conn.Close (); } catch (sqlexception se) {// manipula erros para jdbc SE.printStackTrace (); } catch (Exceção e) {// manipula erros para class.ForName E.PrintStackTrace (); } finalmente {// Finalmente o bloco usado para fechar os recursos tente {if (stmt! = null) stmt.close (); } catch (sqLexception SE2) {} // nada que possamos fazer tente {if (conn! = null) conn.close (); } catch (sqLexception SE) {SE.printStackTrace (); } // Finalmente, finalmente tente} // End Try System.out.println ("Adeus!"); } // END PRINCIPAL} // END JDBCEXAMPLEAgora compile o exemplo acima da seguinte forma:
C:> javac jdbcexample.java
Ao executar o JDBCExample, ele produz os seguintes resultados:
C:> Java Jdbcexample
Conectando ao banco de dados ... Criando declaração ... Execução do procedimento armazenado ... Nome Emp com ID: 102 é Zaidgoodbye!