03 abril, 2021

JAVA - Registrar alumno

El siguiente ejemplo nos manda Daniel Pérez. Diseñe un programa que permita insertar la información de una alumno. Deberá aplicar herencia y usar GridBagConstraints para crear la interfaz.


MYSQL


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

DROP SCHEMA IF EXISTS `alumno` ;
CREATE SCHEMA IF NOT EXISTS `alumno` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci ;
USE `alumno` ;

-- -----------------------------------------------------
-- Table `alumno`.`Alumno`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `alumno`.`Alumno` (
  `idAlumno` INT NOT NULL ,
  `nomAlumno` VARCHAR(45) NULL ,
  `dirAlumno` VARCHAR(45) NULL ,
  `telAlumno` VARCHAR(45) NULL ,
  PRIMARY KEY (`idAlumno`) )
ENGINE = InnoDB;



SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;


JAVA

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package BD5_Mantenimiento3;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexion {

	// Propiedades de conexión de la base de datos
	private String driver;
	private String url;
	private String user;
	private String pass;

	// Al llamar al constructor de la clase se inicializan las propiedades de conexión
	protected Conexion() {
		driver = "com.mysql.cj.jdbc.Driver"; // Driver MySQL
		url = "jdbc:mysql://localhost/alumno?serverTimezone=UTC&useSSL=false"; // Url de la bd
		user = "root"; // Usuario del servidor
		pass = "root"; // Contraseña del servidor
	}

	// Retorna la conexión a la base de datos
	public Connection getConnection() {
		Connection cn = null;
		try {
			Class.forName(driver);
			cn = DriverManager.getConnection(url, user, pass);
			System.out.println("Conexión exitosa...\n");
		} catch (ClassNotFoundException x) {
			System.out.println("Error al cargar el driver...\n" + x);
		} catch (SQLException x) {
			System.out.println("Error al conectarse al servidor de base de datos...\n" + x);
		}
		return cn;
	}

	// Cierra la conexión a la base de datos
	public void closeConnection(Connection cn) {
		try {
			if (cn != null && !cn.isClosed()) {
				cn.close();
				cn = null;
			}
		} catch (SQLException x) {
			System.out.println("Error al intentar cerrar la conexión...\n" + x);
		}
	}

}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package BD5_Mantenimiento3;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Alumno extends Conexion {

	// Atributos de clase
	private int idAlumno;
	private String nomAlumno;
	private String dirAlumno;
	private String telAlumno;

	// Constructor
	public Alumno() {
		super();
	}

	// Métodos de acceso getters/setters
	public int getIdAlumno() {
		return idAlumno;
	}

	public void setIdAlumno(int idAlumno) {
		this.idAlumno = idAlumno;
	}

	public String getNomAlumno() {
		return nomAlumno;
	}

	public void setNomAlumno(String nomAlumno) {
		this.nomAlumno = nomAlumno;
	}

	public String getDirAlumno() {
		return dirAlumno;
	}

	public void setDirAlumno(String dirAlumno) {
		this.dirAlumno = dirAlumno;
	}

	public String getTelAlumno() {
		return telAlumno;
	}

	public void setTelAlumno(String telAlumno) {
		this.telAlumno = telAlumno;
	}

	// Registra un alumno en la base de datos
	public void guardarAlumno() {
		Connection cn = null;
		PreparedStatement ps;
		int registrosAfectados = 0;
		try {
			// Establece la conexión a la base de datos
			cn = getConnection();
			// Crea un objeto PreparedStatement para enviar sentencias SQL parametrizadas a la base de datos
			String sql = "insert into alumno (idAlumno, nomAlumno, dirAlumno, telAlumno) "
					+ "values (?,?,?,?)";
			ps = cn.prepareStatement(sql);
			// Le pasamos los valores a los parámetros
			ps.setInt(1, idAlumno);
			ps.setString(2, nomAlumno);
			ps.setString(3, dirAlumno);
			ps.setString(4, telAlumno);
			// Ejecuta la instrucción SQL
			registrosAfectados = ps.executeUpdate();
		} catch (SQLException x) { // Si el código anterior lanza una excepción
			System.out.println("Error al registrar el alumno\n" + x);
		} finally {
			closeConnection(cn); // Al finalizar cierra la conexión para liberar los recursos
		}

		// Imprime un mensaje si el registro fue exitoso o no
		if (registrosAfectados > 0)
			System.out.println("Registro insertado con exito...");
		else
			System.out.println("Hubo un problema al insertar un alumno...");
	}

}

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package BD5_Mantenimiento3;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Principal extends JFrame implements ActionListener {
	
	// Atributos para la creación de la GUI
	private JLabel lblId, lblNombre, lblDirecion, lblTelefono;
	private JTextField txtId, txtNombre, txtDireccion, txtTelefono;
	private GridBagConstraints constraints = new GridBagConstraints();

	public Principal() {
		super("Insertar alumno - Usando GridBagLayout");
		setLayout(new GridBagLayout()); // Establecemos como layout un GridBagLayout

		// Campo ID
		lblId = new JLabel("Ingrese el id del alumno");
		constraints.gridx = 0; // columna 0
		constraints.gridy = 0; // fila 0
		constraints.gridwidth = 1; // ocupa 1 celda de ancho
		constraints.gridheight = 1; // ocupa 1 celda de alto
		this.getContentPane().add(lblId, constraints);

		txtId = new JTextField(10);
		constraints.gridx = 2; //  columna 2
		constraints.gridy = 0; // fila 0
		constraints.gridwidth = 1; // // ocupa 1 celda de ancho
		constraints.gridheight = 1; // ocupa 1 celda de alto
		constraints.anchor = GridBagConstraints.WEST;  // Lado izquierdo y centrado verticalmente.
		this.getContentPane().add(txtId, constraints);
		
		// Campo nombre
		lblNombre = new JLabel("Ingrese el nombre del alumno");
		constraints.gridx = 0; // columna 0
		constraints.gridy = 2; // fila 2
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		this.getContentPane().add(lblNombre, constraints);

		txtNombre = new JTextField(20);
		constraints.gridx = 2; // columna 2
		constraints.gridy = 2; // fila 2
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		constraints.anchor = GridBagConstraints.WEST;
		this.getContentPane().add(txtNombre, constraints);
		
		// Campo dirección
		lblDirecion = new JLabel("Ingrese la dirección del alumno");
		constraints.gridx = 0; // columna 0
		constraints.gridy = 4; // fila 4
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		this.getContentPane().add(lblDirecion, constraints);

		txtDireccion = new JTextField(20);
		constraints.gridx = 2; // columna 2
		constraints.gridy = 4; // columna 4
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		constraints.anchor = GridBagConstraints.WEST;
		this.getContentPane().add(txtDireccion, constraints);
		
		// Campo teléfono
		lblTelefono = new JLabel("Ingrese el teléfono del alumno");
		constraints.gridx = 0; // columna 0
		constraints.gridy = 6; // fila 6
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		this.getContentPane().add(lblTelefono, constraints);

		txtTelefono = new JTextField(20);
		constraints.gridx = 2; // columna 2
		constraints.gridy = 6; // fila 6
		constraints.gridwidth = 1;
		constraints.gridheight = 1;
		constraints.anchor = GridBagConstraints.WEST;
		this.getContentPane().add(txtTelefono, constraints);
		
		// Botón guardar
		JButton btnGuardar = new JButton("Guardar");
		constraints.gridx = 2; // columna 2
		constraints.gridy = 8; // fila 8
		constraints.gridwidth = 2;  // ocupa 2 celdas de ancho
		constraints.gridheight = 1; // ocupa 1 celda de alto
		this.getContentPane().add(btnGuardar, constraints);
		btnGuardar.addActionListener(this);
		
		// Venta principal
		setSize(430, 150);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}

	// Si hizo clic en el botón guardar
	public void actionPerformed(ActionEvent e) {
		// Crea el objeto alumno
		Alumno alumno = new Alumno();
		alumno.setIdAlumno(Integer.parseInt(txtId.getText()));
		alumno.setNomAlumno(txtNombre.getText());
		alumno.setDirAlumno(txtDireccion.getText());
		alumno.setTelAlumno(txtTelefono.getText());
		// Guardamos el alumno en la base de datos
		alumno.guardarAlumno();
	}

	// Método principal que lanza la aplicación
	public static void main(String[] args) {
		new Principal();
	}

}

PROGRAMA


DESARROLLO TUS ALGORITMOS 🔥🔥


✅ 1. Envía tu algoritmo.
✅ 2. Indica en qué lenguaje de Programación lo deseas.
✅ 3. Para qué fecha lo quieres.
✅ 4. De que país eres (para tu forma de pago)
✅ 5. También se desarrollan al momento.
✅ 6. Los 3 primeros ejercicios son gratis.
🔸 Explico cada ejercicio que desarrollo en el código.



No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!