Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Antoniio03 en 10 de Mayo 2016, 01:50
-
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?, o sea, 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.
-
Buenos días, el problema que planteas trata básicamente de cómo crear una interfaz gráfica de usuario con Java. Hay distintos paquetes y frameworks que permiten hacer esto.
Para trabajar con entornos gráficos tienes que aprender a manejar tanto entornos gráficos como los eventos que genera el usuario (clicks en botones, posicionamiento del mouse, etc.).
Como entorno gráfico te recomiendo empezar con Swing: https://docs.oracle.com/javase/tutorial/uiswing/ dentro del tutorial swing hay partes dedicadas a eventos como https://docs.oracle.com/javase/tutorial/uiswing/events/index.html
En este hilo puedes ver un ejemplo: https://www.aprenderaprogramar.com/foros/index.php?topic=679.0
En este otro: https://www.aprenderaprogramar.com/foros/index.php?topic=3491.0
En este otro: https://www.aprenderaprogramar.com/foros/index.php?topic=4249.0
Etc.
Saludos.
-
Ya entiendo !, me servirá de ayuda, muchas gracias ! ;3