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:
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.
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/ (http://lineadecodigo.com/java/formulario-basico-con-java-swing/)
Gracias pero, crees que funcione del mismo modo al querer ingresar datos a la tabla?
¿Por qué iba a funcionarde modo distinto?
Una vez el formulario haya sido rellenado, coges los datos, y los insertas.
Ya lo pude hacer!, gracias ;D
utiliza javafx, swing ya esta muy obsoleto
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.
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){}
}