Recopilando experiencias… Generando codigo entendible…

Netbeans + conexión Mysql (2ª parte)

Disculpen la demora, en subir la segunda parte, espero que al igual, que el primer post “Netbeans + conexión Mysql”, en donde solo me limite a explicarles la conexión; pero sin utilizar ninguna clase mas y ni otra operación sobre dicha base de datos. Cualquiera diria donde esta el chiste de usar Java, si ni siquiera uso un desarrollo Orientado a Objetos, pues ahora le agregue dichas cosas, asi que espero les guste :D

Como estamos continuando con el post anterior “Netbeans + conexión Mysql”, es obvio que usaremos la misma base de datos, que se usó en dicha ocasión, aha! tienen razón la Base de Datos “test” la cual le habiamos agregado una tabla con sus respectivos campos, bueno ahora si, los utilizaremos, ya que habran pensado que fueron creados en vano, jeje . Con este detalle ya aclarado, podemos empezar:

Empecemos agregando una nueva clase a nuestro proyecto, lo haremos de la siguiente manera:
nbeansmysql07

A nuestra nueva clase le damos el nombre: OperacionesDB
y listo tenemos una nueva clase en la cual guardara informacion y funciones necesarias para manejar y administrar una base de datos, mediante operaciones basicas.
La clase OperacionesDB, nos quedara de la siguiente manera:

nbeansmysql08

Como atributos de la clase tenemos a nuestras variables de conexión y dos variables más que nos ayudaran para realizar las operaciones de manipulación.

  • La variable “sql” es del tipo Statement, con la cual ejecutaremos diferentes sentencias sobre la base de datos.
  • La variable “rs” que es del tipo ResultSet, sera el que contenga el resultado para una determinada sentencia.

Constructor: El constructor de esta clase, inicializara las variables de conexión y manipulación.

nbeansmysql09

Conectar DB: Este metodo, contiene lo mismo que se vio en la clase principal del post, anterior.

nbeansmysql10

Solamente se agrego un par de lineaa de codigo (en si solo es una), como se muestra en el recuadro rojo, que con la conexión ya establecida, creamos un tipo Statement y lo asignamos a la variable “sql”. Pero hay algo más:

  • ResultSet.TYPE_SCROLL_INSENSITIVE: Hace que los resultados obtenidos con esta sentencia, el puntero de dicho resultado, se movera en 2 direcciones “atras” y “adelante” pero sin notar cambios hechos por otros . Más detalles en: Documentos java ResultSet.
  • ResultSet.CONCUR_UPDATABLE: El resultado obtenido podra tener funciones de actualización sobre la base de datos. Más detalles también en: Documentos java ResultSet.

Cerrar DB: El nombre lo dice todo y la imagen también:

nbeansmysql11

Ejecutar Consulta: Solamente es un mero cambio de nombre de la sentencia de consulta, solo para familiarizar el codigo ok.

Buscar Por Nombre: Este metodo hace una busqueda segun el campo “nombre” en “tabla1″, y no es mas que una cadena de texto en donde colocamos nuestra consulta según el estandart del lenguaje SQL. Para realizar la busqueda agregamos la el parametro de tipo cadena, a nuestra cadena de consulta, y ejecutamos dicha consulta, con la nueva cadena concatenada.

nbeansmysql12

Ejecutar Insertar: Es un metodo sobrecargado, cuya diferencia rádica solamente en el hecho de usar parametros detallados en el segundo, y no en el primero que solamente recibe una cadena para ser ejecutada, obviamente una cadena conteniendo sentencias SQL. Para el segundo metodo, dicha cadena se construira con los parametros solicitados y listo.

nbeansmysql13

Ejecutar Actualizar: Operación muy importante al momento de trabajar con Base de Datos, en este caso solo actualizaremos el campo edad de un determinado registro.

También es un metodo sobrecargado, y es muy parecido al primer metodo que se uso para insertar datos, en donde hacemos que se ejecute la una cadena sql, en nuestra sentencia, simple.

nbeansmysql14

Recordaran que se creo un Statement que fue asignado a la variable “sql”, pues al darle como paremetro ResultSet.CONCUR_UDATABLE y se explico para que sirve, ahora ha llegado el momento de ver como se usa:

nbeansmysql15Obtenemos un ResultSet  y se lo asignamos a “rs” mediante la metodo BuscarPorNombre, como ven, ahora con el “rs” podemos modificar los datos en “tabla1″, previo movimiento del puntero, ya que de no hacerse se encontraria en la posición -1.

  • rs.updateInt(“EDAD”, edad) : Indica que actualizaremos en el campo “EDAD” del registro actual un valor entero (updateInt), dicho valor esta almacenado en el parametro “edad”.
  • rs.updaterow() : Para concretar la actualización del registro.

Eliminar Registro: Usamos la misma temática que el metodo anterior, buscamos el registro por el nombre, movemos el puntero del resultado, y procedemos a eliminarlo con deleteRow().

nbeansmysql16

Ver RS: Un simple metodo para visualizar el contenido de “tabla1″, seleccionamos todos los campos y mostramos registro por registro, usando sus respectivos metodos del ResultSet “rs”, como son los: getXXX, ya obtenemos del tipo entero y cadena.

nbeansmysql17Noten como el  parametro para el rs.getXXX(), cambia de manera ascendente, pues indica el numero de campo:

  • campo: (1) = idtabla
  • campo: (2) = nombre
  • campo: (3) = apellido
  • campo: (4) = edad

o sino colocaramos una cadena con el nombre del campo así como en el metodo de actualización sobrecargado.

Ahora viene lo bueno, que es probar todo lo explicado, y estos son los resultados que obtuve, al igual que uds. cuando lo implementen, entonces veamos:

  • Ahora todo lo haremos en nuestra clase principal, creamos un objeto del tipo OperacionesDB, nos conectamos, mostramos que hay en la tabla1 y cerramos.

nbeansmysql18

  • Agregamos a nuestro codigo, las llamadas de inserción respectivas.

nbeansmysql19

  • Probamos el actualizar con cadena SQL.

nbeansmysql20

  • Probamos el segundo metodo para actualizar.

nbeansmysql21

  • Por ultimo eliminamos el primer registro.

nbeansmysql22

Recuerden que deben tener mucho cuidado con las sentencias SQL, que deseen ejecutar o consultar, ya que siempre caemos en este detalle al momento de programar, y francamente es un verdadero lio.

Espero les haya gustado y sobre todo haya sido de mucha utilidad, más adelante le pondre un par de cositas mas a este ejemplo, muchas gracias por la visita, hasta luego.

8 Comments to Netbeans + conexión Mysql (2ª parte)

  1. 18/11/2009 at 10:34 am | Permalink

    HOLA AYUDA CON TUTORIALES DE NETBEANS Y MYSQL
    PLEASE :D

  2. 29/11/2009 at 11:29 am | Permalink

    DJ gracias por la guia que subio de NETBEANS , que son pocas y no tan explicativas como estas que encontre, ojala continue con mas aportes y algunas sugerencias que pedan servir en el desarrollo de aplicaciones java WEB o WIN .
    se le agradece……………

  3. Francoscio's Gravatar Francoscio
    03/02/2010 at 9:37 am | Permalink

    Super bueno, mme gusto mucho, lo unico malo es que la parte de eliminar el primer registro me lanza el siguiente error

    com.mysql.jdbc.NotUpdatable: Result Set not updatable (referenced table has no primary keys).This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, can not use functions and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.

  4. Francoscio's Gravatar Francoscio
    03/02/2010 at 10:30 am | Permalink

    al final reemplaze todo el metodo por

    sql.execute(“DELETE FROM progo.tabla1 WHERE nombre = ‘”+nombre+”‘”);

  5. Mephesto Khaan's Gravatar Mephesto Khaan
    07/02/2010 at 2:07 pm | Permalink

    Muchas gracias por todo, me está siendo de gran ayuda, pero tengo una duda!

    public int readAdminID()throws Exception{
    int val = 0;
    try{
    rs = executeConsult(“SELECT ID FROM ADMINISTRATOR;”);
    // val= rs.getInt(1); //<—- problema!
    rs.close();
    }catch(Exception ex){
    System.out.println(ex + "readAdminID");
    val = -1;
    }
    return val;
    }

    trozos de código así me dan excepcion si descomento la linea esa, o en general tras la consulta uso rs.getxxx(), ¿Por qué podría ser?

    Muchas gracias de nuevo, con tu blog he avanzado un montón!

  6. Mephesto Khaan's Gravatar Mephesto Khaan
    07/02/2010 at 2:26 pm | Permalink

    De acuerdo, olvidalo lo encontré!

    Pensaba que de primeras rs apuntaba a la primera fila, pero es necesario ejecutar al menos una vez el rs.next() (es una BD un poco castaña con un par de tablas de una fila única)

    De nuevo gracias! :D

  7. Luis's Gravatar Luis
    14/02/2010 at 6:37 pm | Permalink

    Q tal! muy bueno, pero me tira error en el segundo de actuaizar, en el eliminar, sale esto:

    “com.mysql.jdbc.NotUpdatable: Result Set not updatable.This result set must come from a statement that was created with a result set type of ResultSet.CONCUR_UPDATABLE, the query must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.”

    Honestamente no se porq? alguien sabe?

    Saludos!

  8. luis's Gravatar luis
    25/07/2010 at 6:09 pm | Permalink

    gran aporte!!, si alguien sabe un formulario jframe para registrar un usuario con bd mysql, soy nuevo en este lenguaje.

  1. By on 14/11/2009 at 8:04 am

Leave a Reply

Puede usar codigo HTML y sus atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags

Enlaces

BlogsPeru.com blogarama - the blog directory Internet Internet Blogs Webfeed (RSS/ATOM/RDF) submitted to http://www.feeds4all.nl Blogs lists and reviews Blog Directory by Blog Flux Programming Blogs - BlogCatalog Blog Directory BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog
planetaperu.pe estamos en
PlanetaPeru.pe

Creative Commons License