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 ![]()
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:

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:
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.
Conectar DB: Este metodo, contiene lo mismo que se vio en la clase principal del post, anterior.
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:
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.
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.
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.
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:
Obtenemos 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().
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.
Noten 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.
- Agregamos a nuestro codigo, las llamadas de inserción respectivas.
- Probamos el actualizar con cadena SQL.
- Probamos el segundo metodo para actualizar.
- Por ultimo eliminamos el primer registro.
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.






















HOLA AYUDA CON TUTORIALES DE NETBEANS Y MYSQL
PLEASE
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……………
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.
al final reemplaze todo el metodo por
sql.execute(“DELETE FROM progo.tabla1 WHERE nombre = ‘”+nombre+”‘”);
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!
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!
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!
gran aporte!!, si alguien sabe un formulario jframe para registrar un usuario con bd mysql, soy nuevo en este lenguaje.