Soy principiante en esto del lenjuage java y necesito ayuda.
La cuestión es la siguiente, tengo un proyecto creado en Netbeans (Web Application) que consta de 4 capas (la verdad es que yo creo que esas se llaman capas, si estoy mal me dicen.) Y el Netbeans esta conectado a una base de datos (Navicat)
La idea es crear una pagina web, que tenga un formulario para Ingresar, Consultar, Modificar y Eliminar clientes.
Logré hacer que ingrese usuarios via web. Pero estoy trabado en poder consultar.
A continuación expongo los codigos para ingresar. (Los codigos tambien tienen otras cosas, pero ustedes podrán darse cuenta cual es cual)
Cliente.java (Dentro del paquete DTO)
Código Java:
Ver original
package DTO; public class Cliente { return rut; } this.rut = rut; } return nombre; } this.nombre = nombre; } return estado; } this.estado = estado; } }
IngresoCliente.java (Dentro del paquete GUIServlet)
Código Java:
Ver original
package GUIServlet; import DTO.Cliente; import Negocio.Negocio; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet(name = "IngresoCliente", urlPatterns = {"/IngresoCliente"}) public class IngresoCliente extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) response.setContentType("text/html;charset=UTF-8"); try { Negocio auxNegocio = new Negocio(); Cliente auxCliente = new Cliente(); auxCliente.setRut(request.getParameter("txtRut")); auxCliente.setNombre(request.getParameter("txtNombre")); auxCliente.setEstado(request.getParameter("txtEstado")); auxNegocio.ingresarCliente(auxCliente); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Se grabaron los datos correctamente</title>"); out.println("</head>"); out.println("<body>"); out.println("<script language = Javascript>"); out.println("window.alert ('Datos Grabados');"); out.println("location = href= 'http://localhost:8080/Web/WebIngresoCliente.jsp';"); out.println("</script>"); out.println("</body>"); out.println("</html>"); out.close(); } { out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>no se grabaron los datos correctamente</title>"); out.println("</head>"); out.println("<body>"); out.println("Rut: " + request.getParameter("txtRut")); out.println("Nombre: " + request.getParameter("txtNombre")); out.println("Estado:" + request.getParameter("txtEstado")); out.println("</body>"); out.println("</html>"); out.close(); } { out.close(); } } }
Negocio.java (Dentro del paquete Negocio)
Código Java:
Ver original
package Negocio; import DTO.*; import Conexion.*; import java.util.ArrayList; import javax.swing.JOptionPane; public class Negocio { private Conexion conec1; public Conexion getConec1() { return conec1; } public void setConec1(Conexion conec1) { this.conec1 = conec1; } public void configurarConexion() { this.setConec1(new Conexion()); this.getConec1().setNombreBaseDeDatos("jdbc:mysql://localhost/ventas"); this.getConec1().setNombreTabla("clientes"); this.getConec1().setCadenaConexion("com.mysql.jdbc.Driver"); this.getConec1().setUsuario("root"); this.getConec1().setPass(""); } public void ingresarCliente(Cliente cliente) { this.configurarConexion(); this.getConec1().setCadenaSQL("INSERT INTO clientes" + " (rut,nombre,estado) VALUES ('" + cliente.getRut()+ "','" + cliente.getNombre() + "','" + cliente.getEstado() + "');" ); this.getConec1().setEsSelect(false); this.getConec1().conectar(); } { Cliente auxCliente = new Cliente(); this.configurarConexion(); this.getConec1().setCadenaSQL("SELECT * FROM clientes" + " WHERE rut = '" + rut + "';"); this.getConec1().setEsSelect(true); this.getConec1().conectar(); try { if (this.getConec1().getDbResultSet().next()) { auxCliente.setRut(this.getConec1().getDbResultSet().getString("rut")); auxCliente.setNombre(this.getConec1().getDbResultSet().getString("nombre")); auxCliente.setEstado(this.getConec1().getDbResultSet().getString("estado")); } else { auxCliente.setRut(""); auxCliente.setNombre(""); auxCliente.setEstado(""); } } { } return auxCliente; } { this.configurarConexion(); this.getConec1().setCadenaSQL("DELETE FROM " + this.getConec1().getNombreTabla() + " WHERE rut = '" + rut + "';"); this.getConec1().setEsSelect(false); this.getConec1().conectar(); } public Cliente posicionaCliente(int fila) { Cliente auxCliente = new Cliente(); this.configurarConexion(); this.getConec1().setCadenaSQL("SELECT * FROM " + this.getConec1().getNombreTabla()); this.getConec1().setEsSelect(true); this.getConec1().conectar(); try { if(this.getConec1().getDbResultSet().relative(fila)) { auxCliente.setRut(this.getConec1().getDbResultSet().getString("rut")); auxCliente.setNombre(this.getConec1().getDbResultSet().getString("nombre")); } { auxCliente.setRut(""); auxCliente.setNombre(""); } //Fin else } { auxCliente.setRut(""); auxCliente.setNombre(""); } return auxCliente; } }
Como pueden ver, el que se conecta a la base de datos es Negocio.java. Osea, IngresoCliente llama a Negocio.java para registar datos. Esto me funciona a la perfección.
Ahora le muestro el código ConsultaCliente.java que debe conectarse a Negocio.java para mostrar los datos.
ConsultaCliente.java (Dentro del paquete GUIServlet)
Código Java:
Ver original
package GUIServlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import DTO.*; import Negocio.*; @WebServlet(name = "ConsultaCliente", urlPatterns = {"/ConsultaCliente"}) public class ConsultaCliente extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) response.setContentType("text/html;charset=UTF-8"); try { Negocio auxNegocio = new Negocio(); Cliente auxCliente = new Cliente(); auxNegocio.buscarCliente(null); auxCliente.setRut(request.getParameter("txtRut")); auxCliente.setNombre(request.getParameter("txtNombre")); auxCliente.setEstado(request.getParameter("txtEstado")); out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet ConsultaCliente</title>"); out.println("</head>"); out.println("<body>"); out.println("Rut: " + request.getParameter("txtRut")); out.println("Nombre: " + request.getParameter("txtNombre")); out.println("Apellido: " + request.getParameter("txtEstado")); out.println("</body>"); out.println("</html>"); } finally { out.close(); } }
El problema es el al solicitar los datos me los muestra null.
La idea es que el formulario (en la web) tenga el campo Rut y un botón Consultar. Al ingresar el Rut y dar click en el boton, deberia mostrar los demas datos del cliente (Nombre y Estado) pero me paracen valores null.
Espero me puedan ayudar. Pido disculpas por si el codigo está algo desordenado, pero creo que se entiende.
Muchas gracias, saludos!