Cómo hacer una aplicación Java que use una base de datos en el back-end

Hola,

Suponga que tiene una tabla de pacientes con la siguiente descripción en su MySQL.

y quieres los datos en tu ventana de swing como:

entonces tienes que escribir un código como:

/ *
* Para cambiar esta plantilla, elija Herramientas | Plantillas
* y abra la plantilla en el editor.
* /

/ *
* All_Patients_List.java
* *
* Creado el 28 de octubre de 2013, 1:53:35 a.m.
* /

paquete PMS;

import java.sql. *;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/ **
* *
* @author kv
* /
public class All_Patients_List extiende javax.swing.JFrame {

int x = 0;
/ ** Crea un nuevo formulario All_Patients_List * /
public All_Patients_List () {
initComponents ();
}

/ ** Este método se llama desde el constructor para
* inicializar el formulario.
* ADVERTENCIA: NO modifique este código. El contenido de este método es
* siempre regenerado por el Editor de formularios.
* /
@SuppressWarnings (“sin marcar”)
//
privado vacío initComponents () {

jLabel1 = new javax.swing.JLabel ();
jScrollPane1 = new javax.swing.JScrollPane ();
t1 = nuevo javax.swing.JTable ();
RTOBtn = new javax.swing.JButton ();
GRCBtn = new javax.swing.JButton ();
EXITBtn = new javax.swing.JButton ();

setTitle (“LISTA DE TODOS LOS PACIENTES”);
addWindowFocusListener (new java.awt.event.WindowFocusListener () {
public void windowGainedFocus (java.awt.event.WindowEvent evt) {
formWindowGainedFocus (evt);
}
public void windowLostFocus (java.awt.event.WindowEvent evt) {
}
});

jLabel1.setFont (nuevo java.awt.Font (“Tahoma”, 1, 24));
jLabel1.setHorizontalAlignment (javax.swing.SwingConstants.CENTER);
jLabel1.setText (“LISTA DE TODOS LOS PACIENTES”);

t1.setModel (nuevo javax.swing.table.DefaultTableModel (
nuevo objeto [] [] {

},
nueva Cadena [] {
“FECHA”, “NÚMERO DE PACIENTE”, “NOMBRE DEL PACIENTE”, “GÉNERO”, “NOMBRE DEL PADRE”, “EDAD”, “NÚMERO DE CONTACTO”
}
));
jScrollPane1.setViewportView (t1);

RTOBtn.setFont (nuevo java.awt.Font (“Tahoma”, 1, 18));
RTOBtn.setMnemonic (‘R’);
RTOBtn.setText (“REVERSE THE ORDER”);
RTOBtn.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
RTOBtnActionPerformed (evt);
}
});

GRCBtn.setFont (nuevo java.awt.Font (“Tahoma”, 1, 18));
GRCBtn.setMnemonic (‘G’);
GRCBtn.setText (“OBTENER EL RECUENTO DE LOS REGISTROS”);
GRCBtn.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
GRCBtnActionPerformed (evt);
}
});

EXITBtn.setFont (nuevo java.awt.Font (“Tahoma”, 1, 18));
EXITBtn.setMnemonic (‘X’);
EXITBtn.setText (“EXIT”);
EXITBtn.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
EXITBtnActionPerformed (evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout (getContentPane ());
getContentPane (). setLayout (layout);
layout.setHorizontalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 804, Short.MAX_VALUE)
.addGroup (layout.createSequentialGroup ()
.addGap (35, 35, 35)
.addComponent (RTOBtn)
.addGap (81, 81, 81)
.addComponent (GRCBtn)
.addGap (80, 80, 80)
.addComponent (EXITBtn))
.addComponent (jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 804, Short.MAX_VALUE))
.addContainerGap ())
);
layout.setVerticalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup ()
.addGap (15, 15, 15)
.addComponent (jLabel1)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 387, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, 53, Short.MAX_VALUE)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (EXITBtn)
.addComponent (RTOBtn)
.addComponent (GRCBtn))
.addContainerGap ())
);

paquete();
} //

nulo privado RTOBtnActionPerformed (java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) t1.getModel ();

int filas = model.getRowCount ();
if (filas> 0)
{
para (int i = 0; i <filas; i ++)
{
model.removeRow (0);
}
}

si (x == 0)
{
x = 1;
}
más
x = 0;

tratar{
Class.forName (“java.sql.Driver”);
Conexión con = DriverManager.getConnection (“jdbc: mysql: // localhost: 3306 / pms”, “root”, “sql”);
Sentencia stmt = con.createStatement ();
String query = “select * from patient;”;
ResultSet rs = stmt.executeQuery (consulta);

si (x == 0) {
while (rs.next ())
{
Cadena d1 = rs.getString (“Fecha”);
int d2 = rs.getInt (“PatNo”);
Cadena d3 = rs.getString (“PatName”);
Cadena d4 = rs.getString (“Género”);
Cadena d5 = rs.getString (“FathersName”);
int d6 = rs.getInt (“Edad”);
Cadena d7 = rs.getString (“ContactNo”);

model.addRow (nuevo objeto [] {d1, d2, d3, d4, d5, d6, d7});
}
}

más
{
rs.afterLast ();
while (rs.previous ())
{
Cadena d1 = rs.getString (“Fecha”);
int d2 = rs.getInt (“PatNo”);
Cadena d3 = rs.getString (“PatName”);
Cadena d4 = rs.getString (“Género”);
Cadena d5 = rs.getString (“FathersName”);
int d6 = rs.getInt (“Edad”);
Cadena d7 = rs.getString (“ContactNo”);

model.addRow (nuevo objeto [] {d1, d2, d3, d4, d5, d6, d7});
}
}
}
captura (excepción e)
{
JOptionPane.showMessageDialog (this, e.getMessage ());
e.printStackTrace ();
}
// TODO agregue su código de manejo aquí:
}

privado vacío GRCBtnActionPerformed (java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) t1.getModel ();

int filas = model.getRowCount ();
JOptionPane.showMessageDialog (esto, “HAY” + filas + “REGISTROS”); // TODO agregue su código de manejo aquí:
}

private void EXITBtnActionPerformed (java.awt.event.ActionEvent evt) {
this.setVisible (falso); // TODO agregue su código de manejo aquí:
}

formulario de vacío privado formWindowGainedFocus (java.awt.event.WindowEvent evt) {
DefaultTableModel model = (DefaultTableModel) t1.getModel ();

int filas = model.getRowCount ();
if (filas> 0)
{
para (int i = 0; i <filas; i ++)
{
model.removeRow (0);
}
}

tratar{
Class.forName (“java.sql.Driver”);
Conexión con = DriverManager.getConnection (“jdbc: mysql: // localhost: 3306 / pms”, “root”, “sql”);
Sentencia stmt = con.createStatement ();

String query = “select * from patient;”;
ResultSet rs = stmt.executeQuery (consulta);

while (rs.next ())
{
Cadena d1 = rs.getString (“Fecha”);
int d2 = rs.getInt (“PatNo”);
Cadena d3 = rs.getString (“PatName”);
Cadena d4 = rs.getString (“Género”);
Cadena d5 = rs.getString (“FathersName”);
int d6 = rs.getInt (“Edad”);
Cadena d7 = rs.getString (“ContactNo”);

model.addRow (nuevo objeto [] {d1, d2, d3, d4, d5, d6, d7});
}

rs.close ();
stmt.close ();
con.close ();
}

captura (excepción e)
{
JOptionPane.showMessageDialog (this, e.getMessage ());
e.printStackTrace ();
} // TODO agregue su código de manejo aquí:
}

/ **
* @param argumenta los argumentos de la línea de comando
* /
public static void main (String args []) {
java.awt.EventQueue.invokeLater (new Runnable () {
public void run () {
nuevo All_Patients_List (). setVisible (true);
}
});
}

// Declaración de variables – no modificar
private javax.swing.JButton EXITBtn;
private javax.swing.JButton GRCBtn;
private javax.swing.JButton RTOBtn;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable t1;
// Fin de la declaración de variables

}

No se tense, ya que más de la mitad del código es autogenerado por el ide que está utilizando (NetBeans en este caso).

La única parte que tienes que escribir es:

DefaultTableModel model = (DefaultTableModel) t1.getModel ();

int filas = model.getRowCount ();
if (filas> 0)
{
para (int i = 0; i <filas; i ++)
{
model.removeRow (0);
}
}

tratar{
Class.forName (“java.sql.Driver”);
Conexión con = DriverManager.getConnection (“jdbc: mysql: // localhost: 3306 / pms”, “root”, “sql”);
Sentencia stmt = con.createStatement ();

String query = “select * from patient;”;
ResultSet rs = stmt.executeQuery (consulta);

while (rs.next ())
{
Cadena d1 = rs.getString (“Fecha”);
int d2 = rs.getInt (“PatNo”);
Cadena d3 = rs.getString (“PatName”);
Cadena d4 = rs.getString (“Género”);
Cadena d5 = rs.getString (“FathersName”);
int d6 = rs.getInt (“Edad”);
Cadena d7 = rs.getString (“ContactNo”);

model.addRow (nuevo objeto [] {d1, d2, d3, d4, d5, d6, d7});
}

rs.close ();
stmt.close ();
con.close ();
}

captura (excepción e)
{
JOptionPane.showMessageDialog (this, e.getMessage ());
e.printStackTrace ();
}

Ahora déjame explicarte todas y cada una de las secciones del código inmediato anterior. (En resumen)

  1. DefaultTableModel model = (DefaultTableModel) t1.getModel (); Esto creará un modelo de tabla para usted en el que desea extraer sus datos.
  2. Class.forName (“java.sql.Driver”); Esto cargará / registrará la clase Driver que permitirá la conexión entre el programa java y el servidor mysql
  3. Conexión con = DriverManager.getConnection (“jdbc: mysql: // localhost: 3306 / pms”, “root”, “sql”); Esto creará un objeto de conexión usando el controlador registrado usando localhost con el puerto 3306 (ya que mi servidor sql está instalado en el puerto 3306), pms es el nombre de la base de datos, root es el nombre de usuario y sql es la contraseña de MySQL.
  4. Sentencia stmt = con.createStatement (); Esto creará un objeto de declaración que se utiliza para ejecutar las consultas sql.
  5. String query = “select * from patient;”; ResultSetrs = stmt.executeQuery (consulta); Esto se utiliza para almacenar el resultado recuperado.

.

Puede crear dichos programas individualmente para la práctica y luego debe diseñar un modelo de proyecto y comenzar a utilizarlo.

.

Gracias,
Prabhudeep Singh

Simplemente cree primero una página de inicio de sesión y registro simple con java, esto lo ayudará a comenzar con la base de datos