Your SlideShare is downloading. ×
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Guia7 java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Guia7 java

1,985

Published on

GUIA 7 …

GUIA 7
Conexión a Base de Datos con NetBeans IDE 6.1

Published in: Education
4 Comments
1 Like
Statistics
Notes
No Downloads
Views
Total Views
1,985
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
109
Comments
4
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GUIA 7Conexión a Base de Datos con NetBeans IDE 6.1 Facultad: Ingeniería Escuela: Computación Asignatura: Java. GUÍA 6 pág. 1
  • 2. I. OBJETIVOS. El estudiante podrá Conectarse a los Gestores de Base de Datos (MySQL o SQLServer 2005). El estudiante podrá hacer capaz de hacer conexiones directamente desde un formulario utilizando NetBeans IDE 6.1 con SQLServer 2005.II. INTRODUCCIÓN.Conexión a la base de datos.Para conectarse a la base de datos, para lo cual básicamente hay que realizar dos pasos. 1. Registrar (Cargar en Memoria) el controlador. Esto se puede hacer de dos formas: De forma dinámica, por medio del método Class.forName(String de driver). Esta es la forma más usual y la que usaremos en la mayor parte de los ejemplos. Ejemplos de carga dinámica: * En MySQL local: Class.forName("com.mysql.jdbc.Driver"); * En Oracle: Class.forName("oracle.jdbc.Driver.OracleDriver"); De manera estática, usando System.setProperties("jdbc.drivers", String de driver). 2. Establecer la conexión por medio del método DriverManager Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/ java?user=root&password=admin");DriverManager tiene muchos métodos getConnection() con parámetros variados. Todosson variantes de lo mismo y la información que suministramos es la misma. Aquí hemosutilizado uno con tres parámetros String.NOTA: Si todo va bien, tendremos nuestra conexión a la base de datos. Si va mal,saltará una excepción. Por eso es importante (y obligatorio para que compile) metertodo esto en un try-catch. GUÍA 6 pág. 2
  • 3. Para enviar comandos SQL a la base de datos, se usa la clase Statement de java. Estaclase se obtiene a partir de la conexión, de esta forma: Statement instruccion = conexion.createStatement();Por supuesto, dentro de un try-catch.Statement tiene muchos métodos, pero hay dos interesantes: executeUpdate() yexecuteQuery(). El primero se usa para sentencias SQL que implica modificaciones en labase de datos (INSERT, UPDATE, DELETE, etc). El segundo sólo para consultas(SELECT y similares).Consultar datos de la base de datosVamos a hacer ahora una consulta de los datos que acabamos de insertar en la base dedatos. Las consultas se hacen con executeQuery() y nos devolverán un ResultSet.El ResultSet de alguna forma representa una conexión hacia los datos. En el ResultSetNO están todavía los datos. Según se los vayamos pidiendo, los irá trayendo de base dedatos. Esto quiere decir que si una consulta devuelve muchos resultados, no se nos va allenar la memoria por el hecho de hacer la consulta.Para traer el primer resultado, debemos llamar el método next() del ResulSet. Para elsiguiente otro next() y así sucesivamente hasta que next() devuelva false, indicando queya no quedaban datos. El código puede ser asíResultSet tabla = instruccion.executeQuery("select Cod_materia, Nombre_materia, Descripcion from materia");System.out.println("Cod_materiatNombre_materiatDescripcion");while(tabla.next())System.out.println(tabla.getInt(1)+"t"+tabla.getString(2)+"t"+ tabla.getString(3));Hemos hecho un SELECT para obtener los datos. Luego un bucle while(table.next()), esdecir, mientras next() vaya trayendo los resultados.Después de next(), el resultado está disponible en el ResulSet. La forma de recoger loscampos es pedirlos con algún método get(). Si sabemos de qué tipo es el dato, podemospedirlo con getInt(), getString(), etc. Si no lo sabemos o nos da igual (como en estecaso), bastará con un getObject(), capaz de traer cualquier tipo de dato.En estos métodos get() podemos pasar como parámetro un entero, empezando en 1, quees el número del campo en el SELECT. Es decir, si hacemos SELECT campo1, campo2,campo3 ..., si pedimos getObject(1) obtenemos el valor de campo1, para getObject(2) elde campo2, etc. GUÍA 6 pág. 3
  • 4. Cerramos conexionesLos Connection, Statement y ResultSet con conexiones abiertas con base de datos.Debemos cerrarlas.ResultSet se cierra solo cuando hacemos otra llamada execute() al Statement del queobtuvimos este ResultSet o bien cuando el recolector de basura "recolecta" al ResultSet.No nos preocupa en principio que se quede abierto, porque se acabará cerrando solo.Eso sí, no podemos hacer nada con el Statement hasta que hayamos terminado con elResultSet o se nos cerrará. Si necesitamos realizar otra cosa con base de datos,debemos crear otro Statement distinto.Cuando terminemos con el Statement, lo cerramos con st.close().Cuando terminemos con la Connection, la cerramos con conexion.close().Tratamiento de Excepciones (try-catch)En Java, como en cualquier otro lenguaje de programación, pueden existir situaciones enla que el programa falle. Java llama a estos errores excepciones.Para tratar excepciones deberemos usar la instrucción try (que significa intentar enespañol). 1. try 2. { 3. //declaración que causa la excepción 4. }Entre las llaves de try escribiremos el código que hará funcional nuestro programa. Paracapturar la excepción que puede generar este código necesitaremos otra instrucciónllamada catch (capturar). 1. catch(NombredeExcepcion obj) 2. { 3. //código para tratar el error 4. } GUÍA 6 pág. 4
  • 5. PROCEDIMIENTO.OJO: Los ejemplos 1 y 2, la salida de dichas Conexión y Consultas laspodrá visualizar en el Output.Ejemplo No 1.Con MYSQLNombre de la Clase Programa.java import java.sql.*; public class Programa { public static void main(String args[]) { try { //Cargar clase de controlador de base de datos Class.forName("com.mysql.jdbc.Driver"); //Crear el objeto de conexion a la base de datos Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/java?user=root&password=admin"); Statement instruccion = conexion.createStatement(); //Un objeto ResultSet, almacena los datos de resultados de una consulta ResultSet tabla = instruccion.executeQuery("select Cod_materia, Nombre_materia, Descripcion from materia"); System.out.println("Cod_materiatNombre_materiatDescripcion"); while(tabla.next()) System.out.println(tabla.getInt(1)+"t"+tabla.getString(2)+"t"+ tabla.getString(3)); instruccion.close(); conexion.close(); } catch(ClassNotFoundException e){ System.out.println(e); } catch(SQLException e){ System.out.println(e); } } } GUÍA 6 pág. 5
  • 6. Ejemplo No 2.Con SQL ServerNombre de la Clase ProgramaSQLServer.java import java.sql.*; public class ProgramaSQLServer { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here try { //Cargar clase de controlador de base de datos Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //Crear el objeto de conexion a la base de datos Connection conexion = DriverManager.getConnection("jdbc:sqlserver://SQLSERVER:1433;databaseName=java;us er=sa;password=sql2005"); //Crear objeto Statement para realizar queries a la base de datos Statement instruccion = conexion.createStatement(); //Un objeto ResultSet, almacena los datos de resultados de una consulta ResultSet tabla = instruccion.executeQuery("select Cod_materia, Nombre_materia, Descripcion from materia"); System.out.println("Codigo de la materiatNombre de la MateriatDescripcion"); while(tabla.next()) System.out.println("t"+tabla.getInt(1)+"tt"+tabla.getString(2)+"tt"+tabla.getString(3)); } catch(ClassNotFoundException e){ System.out.println(e); } catch(SQLException e){ System.out.println(e); } } } GUÍA 6 pág. 6
  • 7. Conexión a SQLServer 2005 con NetBeans IDE 6.1Ejemplo No 3. 1. Primeramente hay que agregar al proyecto una java class que tendrá el Nombre de Conexion1.java public class Conexion1 { //Nombre del controlador JDBC y URL de la base de datos static final String CONTROLADOR_JDBC = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; static final String URL_BASEDEDATOS = "jdbc:sqlserver://SQLSERVER:1433;databaseName=java;user=sa;password=sql2005";} 2. Agregar al proyecto un contenedor de JFrame Form con el nombre de JFMantenimientoAlumno.java. Y hacer los cambios que se muestran en la tabla de la figura 1. Figura 1. GUÍA 6 pág. 7
  • 8. Control Propiedad Eventos Código ValorJFrame title Formulario de EstudiantesJLabel1 font Tahoma 18 Bold text Mantenimiento de Estudiante.JPanel1 border Titled Border Información de Estudiante.JLabel2 text Codigo:JLabel3 text Apellidos:JLabel4 text Nombres:JTextField text Variable Name ecodigoJTextField text Variable Name eapellidosJTextField text Variable Name enombresJPanel2 border Titled Border MantenimientosJButton text Buscar actionPerformed buscar Variable Name mbuscarJButton text Insertar actionPerformed insertar Variable Name minsertarJButton text Borrar actionPerformed borrar Variable Name mborrarJButton text Salir actionPerformed salir Variable Name msalir GUÍA 6 pág. 8
  • 9. import java.sql.*;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.JOptionPane;import java.sql.Connection;import java.sql.DriverManager;public class JFMantenimientoAlumno extends javax.swing.JFrame{private Connection conexion;private Statement instruccion;private ResultSet conjuntoResultados; /** Creates new form JFMantenimientoAlumno */ public JFMantenimientoAlumno() throws SQLException { initComponents(); try { Class.forName(Conexion1.CONTROLADOR_JDBC); conexion = DriverManager.getConnection( Conexion1.URL_BASEDEDATOS ); instruccion= conexion.createStatement(); } catch(ClassNotFoundException e ) { JOptionPane.showMessageDialog(null,e.getMessage(),"Error en los controladores JDBC", JOptionPane.ERROR_MESSAGE); } catch(SQLException e) { JOptionPane.showMessageDialog(null,e.getMessage(),"Error en la base de datos", JOptionPane.ERROR_MESSAGE); } } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") GUÍA 6 pág. 9
  • 10. private void salir(java.awt.event.ActionEvent evt) {// TODO add your handling code here: System.exit(0);}private void borrar(java.awt.event.ActionEvent evt) {// TODO add your handling code here: ecodigo.setText(""); enombres.setText(""); eapellidos.setText("");}private void buscar(java.awt.event.ActionEvent evt) {// TODO add your handling code here: String consulta=""; consulta= "select Cod_alumno, Apellidos, Nombres from alumno where Cod_alumno =" + ecodigo.getText().toString() + ""; try { conjuntoResultados= instruccion.executeQuery(consulta); while (conjuntoResultados.next()) { eapellidos.setText(conjuntoResultados.getString(2)); enombres.setText(conjuntoResultados.getString(3)); } } catch(SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(),"Error al mostrar los datos.", JOptionPane.ERROR_MESSAGE); }} GUÍA 6 pág. 10
  • 11. private void insertar(java.awt.event.ActionEvent evt) {// TODO add your handling code here: String insertar=""; insertar = "insert into alumno (Cod_alumno, Apellidos, Nombres) values (" + ecodigo.getText().toString()+ "" + "," + eapellidos.getText().toString() + "," + enombres.getText().toString() + ")"; try { if (ecodigo.getText().equals("")) { JOptionPane.showMessageDialog(rootPane,"Espeficar el codigo de Estudiante y Materia"); } else { instruccion.executeUpdate(insertar); JOptionPane.showMessageDialog(rootPane, "Registrado Estudiante con Exito !!"); } } catch (SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Error en la base de datos", JOptionPane.ERROR_MESSAGE); }} /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { try { new JFMantenimientoAlumno().setVisible(true); } catch (SQLException ex) {Logger.getLogger(JFMantenimientoAlumno.class.getName()).log(Level.SEVERE, null,ex); } } }); } GUÍA 6 pág. 11
  • 12. // Variables declaration - do not modify private javax.swing.JTextField eapellidos; private javax.swing.JTextField ecodigo; private javax.swing.JTextField enombres; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JButton mborrar; private javax.swing.JButton mbuscar; private javax.swing.JButton minsertar; private javax.swing.JButton msalir; // End of variables declaration }3- Crear un formulario de mantenimiento para la tabla materia GUÍA 6 pág. 12

×