Bueno para este tutorial voy a utilizar netbeans para poder crear las clases y la interfaz grafica de dicha aplicacion, el objetivo es conectarnos a una base de datos de
oracle
y agregar, eliminar y actualizar los campos de dicha tabla, asi mismo realizar consultas de manera transparente para ello tratare de explicar las clases y metodos q seran necesarios para poder realizar con exito la sesion.
Bueno para conectarnos a una base de datos ORACLE necesitamos descargarnos el driver directamente desde la pagina de oracle que nos servira para obtener la funcionalidad, yo descarge el ojdbc6.jar es como el tercero en el siguiente link
Bueno esta de mas decir q necesitamos crear un proyecto en netbeans
Despues de descargarnos el driver lo debemos agregar a la carpeta Libraries de nuestro proyecto click derecho>addjar buscamos el jar y ya esta:
Bueno manos a la obra
Para simplificar este tutorial encapsularemos toda la funcionalidad en una sola clase llamada 'funcionalidad', la cual explicaremos paso a paso.
Como Paso 1 Creamos la conexion a la base de datos : Este paso es importantisimo porque sin esta conexion no podremos establecer una sesion, a continuacion el codigo:
Este metodo de tipo funcionalidad llamado conectar es el q se encarga de crear dicha conexion, lo primero es meter todo el codigo dentro de un try and catch para solventar o manejar cualquier error que pueda darse, luego::
Este es el nombre del driver jdbc que descargamos antes
Esta parte es importante ya que aqui es donde le decimos a java a que base de datos se va a conectar (el nombre), la ip del host al que se va a conectar (aunque puede ser el localhost), el puerto por el que escucha el listener, vamos que si trabajan con oracle saben lo que es un listener y por ultimo el nombre de la database q en mi caso es bdb.
En esta parte le indicamos a oracle que usuario vamos a usar para la conexion, nosotros usaremos el usuario HR con la contraseña HR tambien
PASO 2: Ahora seguimos con la funcionalidad que nos permitira escribir en la base de datos (Insertar, Borrar o hacer update)
Escribir metodo es un booleano que devuelve true si se realiza con exito la transaccion o false si hay algun error.
Todo dentro de un try and catch como buena practica de programacion
y aquie basicamente recivimos un objeto de tipo String que contiene una sentencia sql a la que le daremos formato en la interfaz grafica, luego creamos un objeto de tipo Statement que nos permite escribir borrar o actualizar valores dentro de la base de datos con el hacemos un executeUpdate de nuestra cadena sql y luego un commit, despues cerramos la conexion.
Si existe algun error devolvemos una cadena de error..
PASO 3: ahora vamos a crear el metodo consultar, que no hace otra cosa mas que consultar la base de datos
Este es un metodo de tipo ResultSet el cual es capas de almacenar consultas sql tipicas con el comando select y siempre recive una sentencia sql y devuelve un objeto de tipo ResultSet que luego se formatea en la interfaz grafica.
PASO 4 : la interfaz grafica
Yo la hice sencilla porque la tabla solo tiene 3 campos y es bastante compresiba
La interfaz se puede realizar con el asistente de netbeans (paleta) o se puede realizar a puro codigo lo que mas les guste, y la funcionalidad que encasilla en los metodos que gestionan los eventos para cada boton. Si tienen dudas me comentan, les dejo parte de la interfaz.
Y les anexo la clase funcionalidad o almenos como deberia quedar
Para finalizar desde el metodo main de la clase principal de su proyecto mandan a llamar a la interfaz grafica y todo terminado suerte y saludos!
Cualquier duda o comentarios estamos a la orden
Bueno para conectarnos a una base de datos ORACLE necesitamos descargarnos el driver directamente desde la pagina de oracle que nos servira para obtener la funcionalidad, yo descarge el ojdbc6.jar es como el tercero en el siguiente link
Bueno esta de mas decir q necesitamos crear un proyecto en netbeans
Despues de descargarnos el driver lo debemos agregar a la carpeta Libraries de nuestro proyecto click derecho>addjar buscamos el jar y ya esta:
Bueno manos a la obra

Para simplificar este tutorial encapsularemos toda la funcionalidad en una sola clase llamada 'funcionalidad', la cual explicaremos paso a paso.
Como Paso 1 Creamos la conexion a la base de datos : Este paso es importantisimo porque sin esta conexion no podremos establecer una sesion, a continuacion el codigo:
Este metodo de tipo funcionalidad llamado conectar es el q se encarga de crear dicha conexion, lo primero es meter todo el codigo dentro de un try and catch para solventar o manejar cualquier error que pueda darse, luego::
public funcionalidad conectar() {
try {
Class.forName("
oracle
.jdbc.OracleDriver");
Este es el nombre del driver jdbc que descargamos antes
String BaseDeDatos = "jdbc:
oracle
:thin:@localhost:1521:bdb";
Esta parte es importante ya que aqui es donde le decimos a java a que base de datos se va a conectar (el nombre), la ip del host al que se va a conectar (aunque puede ser el localhost), el puerto por el que escucha el listener, vamos que si trabajan con oracle saben lo que es un listener y por ultimo el nombre de la database q en mi caso es bdb.
conexion = DriverManager.getConnection(BaseDeDatos, "hr","hr");
if (conexion != null) {
System.out.println("Conexion exitosa!");
} else {
System.out.println("Conexion fallida!");
}
} catch (Exception e) {
e.printStackTrace();
} return this;
}
En esta parte le indicamos a oracle que usuario vamos a usar para la conexion, nosotros usaremos el usuario HR con la contraseña HR tambien

PASO 2: Ahora seguimos con la funcionalidad que nos permitira escribir en la base de datos (Insertar, Borrar o hacer update)
Escribir metodo es un booleano que devuelve true si se realiza con exito la transaccion o false si hay algun error.
public boolean escribir(String sql) {
Todo dentro de un try and catch como buena practica de programacion

y aquie basicamente recivimos un objeto de tipo String que contiene una sentencia sql a la que le daremos formato en la interfaz grafica, luego creamos un objeto de tipo Statement que nos permite escribir borrar o actualizar valores dentro de la base de datos con el hacemos un executeUpdate de nuestra cadena sql y luego un commit, despues cerramos la conexion.
Si existe algun error devolvemos una cadena de error..
try {
Statement sentencia;
sentencia = getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
sentencia.executeUpdate(sql);
getConexion().commit();
sentencia.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.print("ERROR SQL");
return false;
}
return true;
}
PASO 3: ahora vamos a crear el metodo consultar, que no hace otra cosa mas que consultar la base de datos
Este es un metodo de tipo ResultSet el cual es capas de almacenar consultas sql tipicas con el comando select y siempre recive una sentencia sql y devuelve un objeto de tipo ResultSet que luego se formatea en la interfaz grafica.
public ResultSet consultar(String sql) {
ResultSet resultado = null;
try {
Statement sentencia;
sentencia = getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
resultado = sentencia.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
return null;
} return resultado;
}
PASO 4 : la interfaz grafica
Yo la hice sencilla porque la tabla solo tiene 3 campos y es bastante compresiba
La interfaz se puede realizar con el asistente de netbeans (paleta) o se puede realizar a puro codigo lo que mas les guste, y la funcionalidad que encasilla en los metodos que gestionan los eventos para cada boton. Si tienen dudas me comentan, les dejo parte de la interfaz.

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
/**
*
* @author xtiyo
*/
public class Interfaz_grafica extends javax.swing.JFrame {
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String sql="";
//int id= Integer.parseInt(jTextField1.getText());
String id=jTextField1.getText();
String n=jTextField2.getText();
String c=jTextField3.getText();
if(jComboBox1.getSelectedIndex()==0){
//String sql="INSERT INTO alumnos VALUES (11,'julio','carrera')";
sql ="INSERT INTO alumno VALUES ("+id+",'"+n+"','"+c+"')";
}
if(jComboBox1.getSelectedIndex()==1){
sql = "UPDATE alumnos SET nombre='"+jTextField2.getText()+"',carrera='"+jTextField3.getText()+"' where id="+jTextField1.getText();
}
if(jComboBox1.getSelectedIndex()==2){
sql = "DELETE FROM alumno WHERE id="+jTextField1.getText();
}
funcionalidad f = new funcionalidad();
f.conectar();
boolean k = f.escribir(sql);
if(k==true){
jLabel5.setText("Transaccion exitosa!!");
}
else {
jLabel5.setText("Error en la transaccion");
}
}
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
if(jComboBox1.getSelectedIndex() == 0)
{
jTextField1.setText("");
jTextField1.setEditable(true);
jTextField2.setText("");
jTextField2.setEditable(true);
jTextField3.setText("");
jTextField3.setEditable(true);
}
if(jComboBox1.getSelectedIndex() == 1)
{
jTextField1.setText("");
jTextField1.setEditable(true);
jTextField2.setText("");
jTextField2.setEditable(true);
jTextField3.setText("");
jTextField3.setEditable(true);
}
if(jComboBox1.getSelectedIndex() == 2)
{
jTextField1.setText("");
jTextField1.setEditable(true);
jTextField2.setText("");
jTextField2.setEditable(false);
jTextField3.setText("");
jTextField3.setEditable(false);
}
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
funcionalidad f = new funcionalidad();
f.conectar();
ResultSet r = f.consultar("select * from alumno");
DefaultTableModel modelo = new DefaultTableModel();
jTable1.setModel(modelo);
modelo.addColumn("ID");
modelo.addColumn("NOMBRE");
modelo.addColumn("CARRERA");
try {
while(r.next()){
Object [] fila = new Object[3];//Crea un vector
//para almacenar los valores del ResultSet
for (int i=0;i<3;i++)
fila[i] = r.getObject(i+1); // El primer indice en rs es el 1, no el cero, por eso se suma 1.
//añado el modelo a la tabla
modelo.addRow(fila);
fila=null;//limpia los datos de el vector de la memoria
}
r.close();//cerrar result-set
} catch (SQLException ex) {
Logger.getLogger(Interfaz_grafica.class.getName()).log(Level.SEVERE, null, ex);
}
//Cierra el ResultSet
}
}
Y les anexo la clase funcionalidad o almenos como deberia quedar

package
oracle
;
import java.sql.*;
/**
*
* @author xtiyo
*/
public class funcionalidad {
private Connection conexion;
public Connection getConexion() {
return conexion;
} public void setConexion(Connection conexion) {
this.conexion = conexion;
}
public funcionalidad conectar() {
try {
Class.forName("
oracle
.jdbc.OracleDriver");
String BaseDeDatos = "jdbc:
oracle
:thin:@172.16.3.1:1521:bdb";
conexion = DriverManager.getConnection(BaseDeDatos, "hr","hr");
if (conexion != null) {
System.out.println("Conexion exitosa!");
} else {
System.out.println("Conexion fallida!");
}
} catch (Exception e) {
e.printStackTrace();
} return this;
}
public boolean escribir(String sql) {
try {
Statement sentencia;
sentencia = getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
sentencia.executeUpdate(sql);
getConexion().commit();
sentencia.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.print("ERROR SQL");
return false;
}
return true;
}
public ResultSet consultar(String sql) {
ResultSet resultado = null;
try {
Statement sentencia;
sentencia = getConexion().createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
resultado = sentencia.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
return null;
} return resultado;
}
}
Para finalizar desde el metodo main de la clase principal de su proyecto mandan a llamar a la interfaz grafica y todo terminado suerte y saludos!
Cualquier duda o comentarios estamos a la orden
