Instancia del objeto de declaración JDBC
Aquí hay ejemplos de uso de las siguientes tres consultas e instrucciones de apertura y cierre:
Boolean Execute (String SQL): Devuelve un valor booleano verdadero, si se puede recuperar el objeto de resultSet, de lo contrario devuelve falso. Use este método para ejecutar declaraciones SQL DDL, o cuando se use SQL dinámico real.
int ejecuteUpdate (string sql): Devuelve el número de filas ejecutadas por la instrucción SQL afectada. Use este método para ejecutar y espere obtener algunas filas afectadas de declaraciones SQL; por ejemplo, insertar, actualizar o eliminar las declaraciones.
ResultSet ExecuteQuery (String SQL): devuelve el objeto ResultSet. Use este método cuando desee obtener un conjunto de resultados, al igual que usar una instrucción SELECT.
Se ha escrito este código de muestra basado en el entorno y la instalación de la base de datos en el capítulo anterior.
Copie el siguiente ejemplo jdbcexample.java, compile y ejecute como se muestra a continuación:
// Paso 1. Importar PackagesImport requerido java.sql.*; Clase pública JDBCEXAMPLE {// JDBC Nombre del controlador y base de datos URL estática Cadena final JDBC_DRIVER = "com.mysql.jdbc.driver"; cadena final estática db_url = "jdbc: mysql: // localhost/emp"; // credenciales de base de datos static final cadena user = "UserName"; static final string pass = "contraseña"; public static void main (string [] args) {Connection conn = null; Instrucción stmt = null; Pruebe {// Paso 2: Registre JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Paso 3: abra un sistema de conexión.out.println ("Conectarse a la base de datos ..."); conn = drivermanager.getConnection (db_url, usuario, pase); // Paso 4: ejecute una consulta System.out.println ("Crear declaración ..."); stmt = conn.createStatement (); Cadena sql = "actualizar empleados establecidos age = 30 donde id = 103"; // Verifiquemos si devuelve un verdadero conjunto de resultados o no. Boolean ret = stmt.execute (sql); System.out.println ("El valor de retorno es:" + ret.toString ()); // actualizamos la edad del registro con id = 103; int filas = stmt.executeupdate (sql); System.out.println ("filas impactadas:" + filas); // Seleccionemos todos los registros y mostrarlos. sql = "Seleccionar ID, primero, último, edad de los empleados"; ResultSet rs = stmt.executeQuery (sql); // Paso 5: Extraiga datos del conjunto de resultados while (rs.next ()) {// recuperar por columna nombre int id = rs.getInt ("id"); int age = rs.getInt ("edad"); Cadena primero = rs.getString ("primero"); Cadena last = rs.getString ("último"); // Muestra valores System.out.print ("Id:" + id); System.out.print (", edad:" + edad); System.out.print (", primero:" + primero); System.out.println (", último:" + Último); } // Paso 6: entorno de limpieza rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// manejar errores para jdbc se.printstackTrace (); } catch (excepción e) {// manejar errores para class.forname E.PrintStackTrace (); } Finalmente {// Finalmente bloqueado para cerrar los recursos, intente {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // nada que podamos hacer intentar {if (conn! = null) conn.close (); } catch (Sqlexception SE) {SE.PrintStackTrace (); } // fin finalmente intente} // finalizar prueba system.out.println ("¡Adiós!"); } // end main} // end jdbcexampleAhora compile el ejemplo anterior de la siguiente manera:
C:> javac jdbcexample.java
Cuando se ejecuta JDBCEXample, produce los siguientes resultados:
C:> java jdbcexample
Conectando a la base de datos ... Creación de la declaración ... El valor de retorno es: falserows impactados: 1ID: 100, edad: 18, primero: Zara, último: Aliid: 101, edad: 25, primero: Mahnaz, último: Fatmaid: 102, edad: 30, primero: Zaid, último: Khanid: 103, edad: 30, primero: Sumit, último: mittalgoodbye!
Instancia del objeto JDBC CallableStatement
Aquí hay un ejemplo de un procedimiento almacenado MySQL utilizando CallableStatement junto con el siguiente getempname ()::
Asegúrese de que el procedimiento almacenado se haya creado en la base de datos EMP. Se puede hacer usando el navegador de consulta MySQL.
Delimiter $$ Drop procedimiento Si existe `emp`.`getEmpName` $$ Crear procedimiento` emp`.`getEmpName` (en emp_id int, out emp_first varchar (255)) Comience seleccionar primero en emp_first desde empleados donde id = emp_id; end $$ delimitador;
Este código de script se ha escrito en función de la instalación del entorno y la base de datos en el capítulo anterior.
Copie el siguiente ejemplo jdbcexample.java, compile y ejecute como se muestra a continuación:
// Paso 1. Importar PackagesImport requerido java.sql.*; Clase pública JDBCEXAMPLE {// JDBC Nombre del controlador y base de datos URL estática Cadena final JDBC_DRIVER = "com.mysql.jdbc.driver"; cadena final estática db_url = "jdbc: mysql: // localhost/emp"; // credenciales de base de datos static final cadena user = "UserName"; static final string pass = "contraseña"; public static void main (string [] args) {Connection conn = null; CallableStatement stmt = null; Pruebe {// Paso 2: Registre JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Paso 3: abra un sistema de conexión.out.println ("Conectarse a la base de datos ..."); conn = drivermanager.getConnection (db_url, usuario, pase); // Paso 4: ejecute una consulta System.out.println ("Crear declaración ..."); Cadena sql = "{llamar getempname (?,?)}"; stmt = conn.prepareCall (SQL); // se une en el parámetro primero, luego une el parámetro int Empid = 102; stmt.SetInt (1, Empid); // Esto establecería ID como 102 // porque el segundo parámetro está fuera, así que registrarlo stmt.registerOutParameter (2, java.sql.types.varchar); // Use el método Ejecutar para ejecutar el procedimiento almacenado. System.out.println ("Ejecución del procedimiento almacenado ..."); stmt.execute (); // recuperar el nombre del empleado con el método getxxx string empname = stmt.getString (2); System.out.println ("EMP Name with ID:" + Empid + "IS" + Empname); stmt.close (); conn.close (); } catch (sqlexception se) {// manejar errores para jdbc se.printstackTrace (); } catch (excepción e) {// manejar errores para class.forname E.PrintStackTrace (); } Finalmente {// Finalmente bloqueado para cerrar los recursos, intente {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // nada que podamos hacer intentar {if (conn! = null) conn.close (); } catch (Sqlexception SE) {SE.PrintStackTrace (); } // fin finalmente intente} // finalizar prueba system.out.println ("¡Adiós!"); } // end main} // end jdbcexampleAhora compile el ejemplo anterior de la siguiente manera:
C:> javac jdbcexample.java
Cuando se ejecuta JDBCEXample, produce los siguientes resultados:
C:> java jdbcexample
Conectando a la base de datos ... Crear declaración ... Ejecutando el procedimiento almacenado ... EMP Nombre con ID: 102 es Zaidgoodbye!