Canales populares

Sistema con Base de Datos para CyberCafe en JAVA y MySQL

Bienvenidos a mi nuevo post!


Sistema de Base de Datos para CyberCafe Con JAVA Y MySQL (Proyecto Completo + Código Fuente y Script SQL)

Hoy les quiero compartir un programa que administra un CyberCafe hecho en el lenguaje de programación JAVA con el motor de base de datos MySQL.



El programa maneja:
-> Despliegue o muestra de información en tablas dinámicas
-> Validación de datos y Login de Usuario
-> Consultas CRUD
-> Consultas JOIN
-> Manejo de eventos de click derecho sobre una tabla
-> Manejo de ventanas o Frames
-> Diseño de ventanas, botones, etc. (Personalizables)
-> Entre otras.

Ofrece dos niveles de "manipulación" el empleado simple y el administrador.

El programa interactua en los frame's, para acceder al sistema, rentar una computadora o vender algún producto sencillo, agregar/eliminar equipos, agregar/eliminar empleados (en caso de que sea administrador), entre otros.

Bueno al grano!

Les muestro como esta relacionado el sistema de base de datos:



Digamos que la tabla principal es la de Ventas.

Realizamos la conexión con la base de datos, desde una clase:

package cybercafe;

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

/**
*
* @author Ivan Luis Jimenez
*/
public class conexion {
Connection con = null;
public Connection conex (){
try{
Class.forName("com.mysql.jdbc.Driver");
con= DriverManager.getConnection("jdbc:mysql://localhost/cybercafe","root","chkdskshrasd");
System.out.println("Conexion establecida");
}catch(Exception e){
System.out.println(e.getMessage());
}
return con;
}
}

Ahora les muestro la clase metodos() en la cual vamos a realizar todas las consultas que maneja el sistema:

package cybercafe;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
*
* @author Armando, Ivan, Karla
*/
public class Metodos {
/*objeto de tipo conexion*/

conexion C = new conexion();
Connection CC = C.conex();
PreparedStatement us;
String sql, usuario = "";

public boolean iniciar(String user, String cont) {
boolean R = false;
try {
Statement st = CC.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM Admins;");
while (rs.next()) {

if (rs.getString(2).equals(user) && rs.getString(4).equals(cont)) {
R = true;
usuario = rs.getString("Usuario");
}
}
rs.close();
} catch (SQLException ex) {
Logger.getLogger(Metodos.class.getName()).log(Level.SEVERE, null, ex);
}
return R;
}

public void elimina_empleado(int Id){
try {
String sql = "DELETE FROM admins WHERE idAdmins="+Id;
us = CC.prepareStatement(sql);
us.executeUpdate();
} catch (Exception e) {
System.out.println("Error al eliminar empleado " + e);
}
}

public void Agregar_empleado(int Id, String Usuario, JComboBox turno,String pass){
try {
us = CC.prepareStatement("INSERT INTO admins(idAdmins, Usuario, Turno, Pass) VALUES("
+ Id + ",'" + Usuario + "','"+turno.getSelectedItem()+"','" + pass + "')");
us.executeUpdate();
} catch (SQLException ex) {
System.out.println("");
}
}

public void llena_combobox(JComboBox tabla){
try {
sql = "SELECT NombreC FROM clientes";
us = C.conex().prepareStatement(sql);
ResultSet res = us.executeQuery();
while (res.next()) {
tabla.addItem(res.getString("NombreC"));
}
System.out.println("Ya agregó los clientes al combobox");
res.close();
} catch (Exception e) {
System.out.println("no visualiza clientes existentes: " + e);
}
}

public void Mostrarconsultas(DefaultTableModel tabla, String sql) {
int Nc = tabla.getColumnCount();
Object[] datos = new Object[Nc];
try {
us = CC.prepareStatement(sql);
ResultSet res = us.executeQuery();

while (res.next()) {
for (int i = 0; i < Nc; i++) {
datos = res.getObject(i + 1);
}
tabla.addRow(datos);
}
res.close();
} catch (Exception e) {
}
}

public void Agregarequipo(JComboBox tipo_e, int Id, String nombre) {

try {
us = CC.prepareStatement("INSERT INTO equipos(idEquipos, Tipo, Estatus, Nequipo) VALUES("
+ Id + ",'" + tipo_e.getSelectedItem() + "','Espera','" + nombre + "')");
us.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(Metodos.class.getName()).log(Level.SEVERE, null, ex);
}
}

public void nombreproductos(JComboBox elige_prod){
elige_prod.removeAllItems();
elige_prod.setVisible(true);

try{
sql = "SELECT NombreP FROM producto";
us = CC.prepareStatement(sql);
ResultSet res = us.executeQuery();
while (res.next()) {
elige_prod.addItem(res.getString("NombreP"));
}
System.out.println("Ya agregó los productos al combobox");
res.close();

}catch (Exception e) {
System.out.println("no visualiza productos existentes: "+ e);
}
}

public void Agregarventas(int idClientes, int Producto_idProducto, String Fecha_V,int Admins_idAdmins,int cantidad ,int Precio_final ){
try{
String sql ="INSERT INTO ventas (`Clientes_idClientes`, `Producto_idProducto`, `Fecha_V`, `Admins_idAdmins`, `Cantidad`, `Precio_final`) VALUES "
+ "('"+idClientes+"', '"+Producto_idProducto+"', '"+Fecha_V+"', '"+Admins_idAdmins+"', '"+cantidad+"', '"+Precio_final+"');";
//no es necesario agregar el idVentas, ya que es autoincrementable
us = CC.prepareStatement(sql);
us.executeUpdate();
us.close();
System.out.println("Venta agregada");
}catch(Exception e){
System.out.println("Error al agregar nueva venta: "+e);
}
}

public void clientenuevo(String nombre, String tipo, Integer visitas) {
try {
String sql = "INSERT INTO clientes(NombreC,Tipo, Visitas) "
+ "VALUES('" + nombre + "','" + tipo + "'," + visitas + ")"; //no es necesario agregar el idCliente,
//ya que es autoincrementable
us = CC.prepareStatement(sql);
us.executeUpdate();
System.out.println("Cliente agregado");
} catch (Exception e) {
System.out.println("Error al agregar nuevo cliente: " + e);
}
}

public Integer vistas(Integer idcliente){
int visitas=0, vis=0;
try {
us = CC.prepareStatement("SELECT Visitas FROM Clientes WHERE idClientes = " + idcliente);
ResultSet res = us.executeQuery();
while (res.next()) {
visitas = res.getInt("Visitas");

}
vis = visitas+1;

us = CC.prepareStatement("UPDATE Clientes SET Visitas="+vis+" WHERE idClientes = " + idcliente);
us.executeUpdate();
System.out.println("Visitas actuales del cliente: "+vis);
} catch (SQLException ex) {
Logger.getLogger(Metodos.class.getName()).log(Level.SEVERE, null, ex);
}
return vis;
}

public Integer idcliente(String sql1){
int id=0;
try{
us = CC.prepareStatement(sql1);
ResultSet res = us.executeQuery();
while (res.next()) {
id = res.getInt(1);
}
System.out.println("id cliente obtenido: "+id);
}catch(Exception e){
System.out.println("Error con el idCliente: "+ e);
}
return id;
}

public void generarrenta(String H_inicio, String H_fin, int ideq, int idcliente, float monto, String fecha, Object idadmin) {
try {
us = CC.prepareStatement("INSERT INTO rentas(HoraInicio,HoraFin, idEquipos, idClientes,Fecha_R,Monto_a_pagar,Admins_idAdmins)"
+ "VALUES('" + H_inicio + "','" + H_fin + "'," + ideq + "," + idcliente + ",'" + fecha + "'," + monto + "," + idadmin + ")");
us.executeUpdate();
System.out.println("Renta guardada");

JOptionPane.showMessageDialog(null, "DATOS DE RENTA AGREGADOS.nID CLIENTE: "+idcliente+
"nMONTO A PAGAR: $"+monto+"nID ADMIN: "+idadmin);

us=CC.prepareStatement("UPDATE equipos SET Estatus='Activa' WHERE idEquipos="+ideq);
us.executeUpdate();
System.out.println("Equipo cambiado a 'Activa'");
} catch (SQLException e) {
System.out.println("Error al guardar datos: " + e);
}
}

public void cambiaestado(String sql){
try{
us = CC.prepareStatement(sql);
us.executeUpdate();

System.out.println("Estado del equipo cambiado a 'Espera'");
JOptionPane.showMessageDialog(null, "!ESTADO DEL EQUIPO CAMBIADO¡");

} catch (SQLException e) {
System.out.println("Error al cambiar estado: " + e);
}

}

public void limpiartabla(DefaultTableModel tabla) {
for (int i = 0; i < tabla.getRowCount(); i++) {
tabla.removeRow(i);
i -= 1;
}
}

public String empleado() {
return usuario;
}

public void mostrarreporte( DefaultTableModel tabla, String sql){
Object[] datos = new Object[5];
try {
us = CC.prepareStatement(sql);
ResultSet res = us.executeQuery();
while (res.next()) {
for (int i = 0; i < 5; i++) {
datos = res.getObject(i + 1);
}
tabla.addRow(datos);
}
res.close();
} catch (Exception e) {
System.out.println("Error mostrando reporte: "+e);
}
}

public Integer idadmin(){
int idadmin=0;
String sql;
try{
sql="SELECT idAdmins FROM admins WHERE Usuario='"+empleado()+"'";
us = CC.prepareStatement(sql);
ResultSet res = us.executeQuery();
while (res.next()) {
idadmin = res.getInt(1);
}
System.out.println("ID Admin: "+ idadmin);

}catch(Exception e){
System.out.println("Error en idAdmin: "+ e);
}

return idadmin;
}

public void elimina_equipo(int Id){
try {
String sql = "DELETE FROM equipos WHERE idEquipos="+Id;
us = CC.prepareStatement(sql);
us.executeUpdate();
} catch (Exception e) {
System.out.println("Error al eliminar equipo " + e);
}
}
}

Les dejo una capturas del programa funcionando:



Espero les sea de mucha ayuda!
Les dejo mi blog en el cual podrán encontrar los archivos para su descarga.
http://ivanovich-hacker.blogspot.mx/2016/12/sistema-de-base-de-datos-para-cybercafe.html
Saludos!

Created By Ivan Luis Jimenez
0No hay comentarios