Hola, muy buenas!
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 originalpackage DTO;
public class Cliente
{
return rut;
}
public void setRut
(String rut
) { this.rut = rut;
}
return nombre;
}
public void setNombre
(String nombre
) { this.nombre = nombre;
}
return estado;
}
public void setEstado
(String estado
) { this.estado = estado;
}
}
IngresoCliente.java (Dentro del paquete GUIServlet)
Código Java:
Ver originalpackage 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 originalpackage 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();
}
public Cliente buscarCliente
(String rut
) {
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("");
}
}
{
JOptionPane.
showMessageDialog(null,
"Error de SQL " + ex.
getMessage()); }
return auxCliente;
}
public void eliminarCliente
(String rut
) {
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 originalpackage 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!