Insertar registros en BD

Iniciado por Antoniio, 10 Mayo 2016, 19:01 PM

0 Miembros y 1 Visitante están viendo este tema.

Antoniio

Hola, buenas. Estoy trabajando con una base de datos específica para este trabajo, lo que he logrado hasta ahora es comunicarme a la base e imprimir lo que tenemos en esas tablas. Mi pregunta es: ¿Cómo crear ventanas gráficas para capturar nuevos datos?, osea, crear por ejemplo un botón de "Insertar" que permita al usuario insertar cualquiera de los siguientes registros: un maestro, una materia, un eje de desarrollo o una seriacion de materias?...el código es este:
Código (java) [Seleccionar]

package unison.lcc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Principal {
    public static void main(String[] args) {
        // TODO code application logic here
        ConectorBD conector1 = new ConectorBD();
        conector1.abrir();
        conector1.comunicar();
        conector1.cerrar();
    }

    private static class ConectorBD {
        Connection conexion=null;
        public ConectorBD() {
        }

        private void abrir() {
            try {
                System.out.println("Abriendo BD");
                conexion= DriverManager.getConnection(
                        "jdbc:mysql://148.225.83.3:3306/e5ingsoft2",
                        "e5ingsoft2", "7MLtw21");
                System.out.println("Coenxion exitosa:"+conexion);
            } catch (SQLException ex) {
                System.out.println("error de conexion"+ex.toString());
            }
        }

        private void leer() {
            System.out.println("Comunicando con la bd");
            String sql = "SELECT * FROM maestro;";
            if(this.conexion!=null){
                try {
                    //crear Sentencia
                    Statement sentencia = conexion.createStatement();
                    //ejecutar "query" en la bd
                    ResultSet resultado = sentencia.executeQuery( sql );
                    //imprimir resultados
                    ResultSetMetaData meta = resultado.getMetaData();
                    int n = meta.getColumnCount();
                    for(int i=1; i<=n; i++){
                        System.out.print("| "+ meta.getColumnName(i) + " |");
                    }
                    System.out.println("");
                    while( resultado.next() ){
                        System.out.print(resultado.getRow()+") ");
                        for(int i=1; i<=n; i++){
                            System.out.print(resultado.getObject(i) + " |");
                        }
                        System.out.println("");
//                        System.out.println(resultado.getRow()+") "+
//                                resultado.getObject(1) + " | " +
//                                resultado.getObject(2)
//                        );
                    }
                    System.out.println("");
                } catch (SQLException ex) {
                    System.out.println("Error en la lectura de bd:"+ex.toString());
                }
            }
        }
       
        private void comunicar(){
            this.insertar();
            this.leer();
        }

        private void cerrar() {
            System.out.println("cerrando bd");
            if(conexion!=null){
                try {
                    conexion.close();
                    System.out.println("Gracias por usar BD. Conexion cerrada!"+conexion);
                } catch (SQLException ex) {
                    System.out.println("No puedo cerrar BD");
                }
            }
        }

        private void insertar() {
            System.out.println("insertando en la bd");
            String sql = "INSERT INTO maestro values("+(int)(Math.random()*100000)+
                    ", 'Desconocido', 662123456, \"Desconocida\");";
            if(this.conexion!=null){
                try {
                    //crear Sentencia
                    Statement sentencia = conexion.createStatement();
                    //ejecutar "query" en la bd
                    int resultado = sentencia.executeUpdate( sql );
                    //imprimir resultados
                    System.out.println("insercion realizada");
                } catch (SQLException ex) {
                    System.out.println("Error en la lectura de bd:"+ex.toString());
                }
            }
        }
    }   
}


Alguna sugerencia??, gracias de antemano !!

Saludos.

MOD EDIT: Etiqueta GeSHi corregida.

ivancea96

Puedes crearlos con las ventanas de la librería Swing.
Si nunca lo usaste, busca algñun tutorial o referencia. Aquí algo que te puede guiar: http://lineadecodigo.com/java/formulario-basico-con-java-swing/

Antoniio

Gracias pero, crees que funcione del mismo modo al querer ingresar datos a la tabla?

ivancea96

¿Por qué iba a funcionarde modo distinto?
Una vez el formulario haya sido rellenado, coges los datos, y los insertas.

Antoniio


+ 1 Oculto(s)

utiliza javafx, swing ya esta muy obsoleto

hectornunezrivas

Buenas noches.
por alguna duda te dejo un link que esta muy bien explicado de como realizar todas estas operaciones.

http://www.c-sharpcorner.com/UploadFile/fd0172/display-records-from-database-using-jtable-in-java/

saludos.

DIANA KARINA HM

Pues no se si te sirva pero aqui esta un ejemplo de insertar

public void insertarDatos(int rut,String nombre,String direccion,int fono){
this.rut=rut;
this.nombre=nombre;
this.direccion=direccion;
this.fono=fono;
System.out.println("Ingresando datos de la interfaz: " +rut+" "+nombre+" "+direccion+" "+fono);
Conexion conec = new Conexion();
try{
objConexion=conec.abrirConeccionBd(usuario, clave);
String sql = "INSERT INTO CLIENTE VALUES("+rut+",'"+nombre+"','"+direccion+"',"+fono +")";
conec.ejecutarTransaccion(sql, objConexion);
try{
System.out.println("Transaccion realizada al cliente");
}catch(Exception e){

}
}catch(Exception e){}
}