InicioHazlo Tu MismoConectar Base de datos de ORacle con aplicacion JAVA
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::


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
Datos archivados del Taringa! original
117puntos
34,836visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

p
Usuario
Puntos0
Posts12
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.