Beruflich Dokumente
Kultur Dokumente
REQUERIMIENTOS
JSDK de Java
Netbeans
Servidor WEB (Wampserver)
Logica:
Datos
Presentacin
4. Crear
un
nuevo
proyecto,
lo
vamos
a
llamar
SistemaReservasHoteleras, omitiremos la creacin de la clase Main.
5. Una vez ubicados en Sourcepackages, crearemos los siguientes
paquetes:
Datos
Logica
Presentacion
Files
Clic sobre el paquete Logica > Crea una nueva clase llamada
conexion.
La codifico de la siguiente manera:
package Logica;
import
import
import
import
java.sql.Connection;
java.sql.DriverManager;
java.sql.SQLException;
javax.swing.JOptionPane;
{
}
public Connection conectar()
{
Connection link=null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
link=DriverManager.getConnection(this.url, this.user,this.pass);
} catch (ClassNotFoundException | SQLException e) {
JOptionPane.showConfirmDialog(null, e);
}
return link;
}
8. Crear el formulario para ingresar los datos de la habitacion
>
New
>
package Datos;
//creo la clase vhabitacion con los mismos atributos que la tabla
public class vhabitacion {
private int idhabitacion;
private String numero;
private String piso;
private String descripcion;
private String caracteristicas;
private Double precio_diario;
private String estado;
private String tipo_habitacion;
3. Dentro de la clase vhabitacion> clic derecho>Insert Code>
Constructor> Chequeo todos los atributos> Clic en Generate
//Creo un mtodo constructor como parmetros todos los atributos de la
clase
public vhabitacion(int idhabitacion, String numero, String piso, String
descripcion, String caracteristicas, Double precio_diario, String estado,
String tipo_habitacion) {
this.idhabitacion = idhabitacion;
this.numero = numero;
this.piso = piso;
this.descripcion = descripcion;
this.caracteristicas = caracteristicas;
this.precio_diario = precio_diario;
this.estado = estado;
this.tipo_habitacion = tipo_habitacion;
}
}
public String getCaracteristicas() {
return caracteristicas;
}
public void setCaracteristicas(String caracteristicas) {
this.caracteristicas = caracteristicas;
}
public Double getPrecio_diario() {
return precio_diario;
}
public void setPrecio_diario(Double precio_diario) {
this.precio_diario = precio_diario;
}
public String getEstado() {
return estado;
}
public void setEstado(String estado) {
this.estado = estado;
}
public String getTipo_habitacion() {
return tipo_habitacion;
}
public void setTipo_habitacion(String tipo_habitacion) {
this.tipo_habitacion = tipo_habitacion;
}
}//Cierro la clase
6. Guardo los cambios
7. En la carpeta Lgica vamos a crear la clase > fhabitacion
Datos.vhabitacion;
java.sql.Connection;
java.sql.PreparedStatement;
java.sql.ResultSet;
java.sql.Statement;
javax.swing.JOptionPane;
javax.swing.table.DefaultTableModel;
}
/*creo el metodo para insertar los datos trayendo la clase
completa vhabitacion con todos sus atributos*/
public boolean insertar (vhabitacion dts){
sSQL="insert into habitacion
(numero,piso,descripcion,caracteristicas,precio_diario,estado,tipo_habit
acion)" + "values (?,?,?,?,?,?,?)";
try {
/*Preparamos la consulta donde dts es una instancia de
la clase vhabitacion*/
PreparedStatement pst=cn.prepareStatement(sSQL);
pst.setString(1, dts.getNumero());
pst.setString(2, dts.getPiso());
pst.setString(3, dts.getDescripcion());
pst.setString(4, dts.getCaracteristicas());
pst.setDouble(5, dts.getPrecio_diario());
pst.setString(6, dts.getEstado());
pst.setString(7, dts.getTipo_habitacion());
/*Esta variable almacenara el resulto de la ejecucion del
statement*/
int n=pst.executeUpdate();
//esta variable me determina si se cumple o no la
insercion de registros
return n!=0;
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
return false;
}
}
public boolean editar (vhabitacion dts){
//La actualizacion del registro la hago a traves del campo
idhabitacion
sSQL="update habitacion set
numero=?,piso=?,descripcion=?,caracteristicas=?,precio_diario=?,estad
o=?,tipo_habitacion=?"+
" where idhabitacion=?";
try {
PreparedStatement pst=cn.prepareStatement(sSQL);
pst.setString(1, dts.getNumero());
pst.setString(2, dts.getPiso());
pst.setString(3, dts.getDescripcion());
pst.setString(4, dts.getCaracteristicas());
pst.setDouble(5, dts.getPrecio_diario());
pst.setString(6, dts.getEstado());
pst.setString(7, dts.getTipo_habitacion());
pst.setInt(8, dts.getIdhabitacion());
int n=pst.executeUpdate();
return n!=0;
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
return false;
}
}
public boolean eliminar (vhabitacion dts){
//Nuevamente el borrado del registro la hago a traves del
campo idhabitacion
sSQL="delete from habitacion where idhabitacion=?";
try {
PreparedStatement pst=cn.prepareStatement(sSQL);
pst.setInt(1, dts.getIdhabitacion());
int n=pst.executeUpdate();
return n!=0;
}
}
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, e);
return false;
}
Datos.vhabitacion;
Logica.fhabitacion;
javax.swing.JOptionPane;
javax.swing.table.DefaultTableModel;
}
private String accion = "guardar";
//Ocultar los campos que no se desean visualizar en la tabla
void ocultar_columnas() {
tablalistado.getColumnModel().getColumn(0).setMaxWidth(0);
tablalistado.getColumnModel().getColumn(0).setMinWidth(0);
tablalistado.getColumnModel().getColumn(0).setPreferredWidth(0);
}
//campos ocultos o no disponibles
void inhabilitar() {
txtidhabitacion.setVisible(false);
cbopiso.setEnabled(false);
txtnumero.setEnabled(false);
txtdescripcion.setEnabled(false);
txtcaracteristicas.setEnabled(false);
txtprecio_diario.setEnabled(false);
cboestado.setEnabled(false);
cbotipo_habitacion.setEnabled(false);
btnguardar.setEnabled(false);
btncancelar.setEnabled(false);
btneliminar.setEnabled(false);
txtidhabitacion.setText("");
txtprecio_diario.setText("");
txtcaracteristicas.setText("");
txtdescripcion.setText("");
}
//Habilito nuevamente los campos
void habilitar() {
txtidhabitacion.setVisible(false);
cbopiso.setEnabled(true);
txtnumero.setEnabled(true);
txtdescripcion.setEnabled(true);
txtcaracteristicas.setEnabled(true);
txtprecio_diario.setEnabled(true);
cboestado.setEnabled(true);
cbotipo_habitacion.setEnabled(true);
btnguardar.setEnabled(true);
btncancelar.setEnabled(true);
btneliminar.setEnabled(true);
txtidhabitacion.setText("");
txtprecio_diario.setText("");
txtcaracteristicas.setText("");
txtdescripcion.setText("");
}
void mostrar(String buscar) {
try {
DefaultTableModel modelo;
fhabitacion func = new fhabitacion();
modelo = func.mostrar(buscar);
tablalistado.setModel(modelo);
ocultar_columnas();
lbltotalregistros.setText("Total Registros " +
Integer.toString(func.totalregistros));
} catch (Exception e) {
JOptionPane.showConfirmDialog(rootPane, e);
}
}
10. Me situ en el botn Nuevo y digito el siguiente cdigo
private void btnnuevoActionPerformed(java.awt.event.ActionEvent evt)
{
//Cuando haga clic sobre el boton de nuevo
habilitar();
btnguardar.setText("Guardar");
accion = "guardar";
}
11. Me situ en el botn de Guardar y digito el siguiente cdigo
private
void
btnguardarActionPerformed(java.awt.event.ActionEvent
evt) {
// Creo reglas de validacion en cada campo para que todos
contengan algun tipo de informacion
if (txtnumero.getText().length() == 0) {
JOptionPane.showConfirmDialog(rootPane, "Debes ingresar un
Nmero de Habitacin");
txtnumero.requestFocus();
return;
}
if (txtdescripcion.getText().length() == 0) {
JOptionPane.showConfirmDialog(rootPane, "Debes ingresar una
descripcin para la Habitacin Habitacin");
txtdescripcion.requestFocus();
return;
}
if (txtprecio_diario.getText().length() == 0) {
JOptionPane.showConfirmDialog(rootPane, "Debes ingresar un
precio diario para la Habitacin Habitacin");
txtprecio_diario.requestFocus();
return;
}
if (txtcaracteristicas.getText().length() == 0) {
JOptionPane.showConfirmDialog(rootPane, "Debes ingresar una
caracterstica para la Habitacin Habitacin");
txtcaracteristicas.requestFocus();
return;
}
vhabitacion dts = new vhabitacion();
fhabitacion func = new fhabitacion();
dts.setNumero(txtnumero.getText());
int seleccionado = cbopiso.getSelectedIndex();
dts.setPiso((String) cbopiso.getItemAt(seleccionado));
dts.setDescripcion(txtdescripcion.getText());
dts.setCaracteristicas(txtcaracteristicas.getText());
dts.setPrecio_diario(Double.parseDouble(txtprecio_diario.getText()));
seleccionado = cboestado.getSelectedIndex();
dts.setEstado((String) cboestado.getItemAt(seleccionado));
seleccionado = cbotipo_habitacion.getSelectedIndex();
dts.setTipo_habitacion((String)
cbotipo_habitacion.getItemAt(seleccionado));
//Creo una nueva instancia de la clase vhabitacion
vhabitacion dts = new vhabitacion();
//instancio la clase para llamar todas la funciones
fhabitacion func = new fhabitacion();
//Envio los datos de los controles uno a uno a los metodos
setters
dts.setNumero(txtnumero.getText());
int seleccionado = cbopiso.getSelectedIndex();
dts.setPiso((String) cbopiso.getItemAt(seleccionado));
dts.setDescripcion(txtdescripcion.getText());
dts.setCaracteristicas(txtcaracteristicas.getText());
dts.setPrecio_diario(Double.parseDouble(txtprecio_diario.getText()));
seleccionado = cboestado.getSelectedIndex();
dts.setEstado((String) cboestado.getItemAt(seleccionado));
seleccionado = cbotipo_habitacion.getSelectedIndex();
dts.setTipo_habitacion((String)
cbotipo_habitacion.getItemAt(seleccionado));
//Ahora determino si deseo guardar o editar un registro
if (accion.equals("guardar")) {
if (func.insertar(dts)) {
JOptionPane.showMessageDialog(rootPane, "La habitacin
fue registrada satisfactoriamente");
mostrar("");
inhabilitar();
}
}
else if (accion.equals("editar")){
dts.setIdhabitacion(Integer.parseInt(txtidhabitacion.getText()));
if (func.editar(dts)) {
JOptionPane.showMessageDialog(rootPane,
fue Editada satisfactoriamente");
mostrar("");
inhabilitar();
}
}
}
"La
habitacin
}
13. Me situ sobre el botn Buscar y digito el siguiente cdigo
mostrar(txtbuscar.getText());
14. Voy a cada control y en cada uno digito el siguiente codigo
private void txtnumeroActionPerformed(java.awt.event.ActionEvent evt)
{
txtnumero.transferFocus();
}
{
cbopiso.transferFocus();
private void
txtprecio_diarioActionPerformed(java.awt.event.ActionEvent evt) {
txtprecio_diario.transferFocus();
}
private void cboestadoActionPerformed(java.awt.event.ActionEvent
evt) {
cboestado.transferFocus();
}
private void
cbotipo_habitacionActionPerformed(java.awt.event.ActionEvent evt) {
transferFocus();
}
15. Ahora establecer que cuando en la tabla de listado de
registros seleccione un registro correspondiente, dichos
valores se pasen a los controles del formulario.
Para ello selecciono
>Mouse>MouseClicked
el
objeto
Tabla
>
Clic
derecho>Events
cbotipo_habitacion.setSelectedItem(tablalistado.getValueAt(fila,
7).toString());
16. Me situ sobre el botn Salir y digito el siguiente cdigo.
this.dispose();