Conexion a una Base de Datos mediante un EJB

1.Creamos una Enterprise Aplication con modulo EJB y WAR
2.Sobre la libreria EJB agregamos la libreria JAR de Oracle para el acceso a la base de datos
3.Sobre el proyecto EJB boton derecho y creamos un SessionBean indicando que es Remote y Stateless
3.Nos vamos a la carpeta EnterpriseBeans y en la sesion bean creada pulsamos sobre Add y sobre BusinessMethod
  y lo llamamos getEmpleadosDepartamento con ReturnType java.lang.String y en Parameters recibe un
  departamento que sera un int
4.La clase nos quedara de la siguiente manera para que vuelva a ser recuperada:
@Stateless
public class SessionBeanBuscadorEmpleados implements SessionBeanBuscadorEmpleadosRemote {
    @Override
    public String getEmpleadosDepartamento(int departamento) {
        try{
            //Agregamos la variable tabla donde se veran todos los elementos a buscar
            String tabla = "";
            //Creamos los accesos a la base de datos
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system", "123456");
            PreparedStatement st = conn.prepareStatement("SELECT NOMBRE, APELLIDOS, ID FROM EMPLEADOS WHERE ID="+departamento+"%");
            st.setInt(1, departamento);
            ResultSet rs = st.executeQuery();
            tabla = "<table border='1'>";
            while(rs.next()){
                tabla += "<tr>";
                tabla += "<td>"+rs.getString(1)+"</td>";
                tabla += "<td>"+rs.getString(2)+"</td>";
                tabla += "<td>"+rs.getString(3)+"</td>";
                tabla += "</tr>";
            }
            tabla += "</table>";
            return tabla;
        } catch (SQLException ex) {
            return "Error "+ex.toString();
        }
    }
}
5.Nos vamos al proyecto WAR y creamos un Servlet que llamara al EJB llamado ServletBuscadorEmpleados
6.Pulsamos boton derecho sobre el codigo del Servlet dentro del try y hacemos una llamada al EJB
  mediante InsertCode >> Call Enterprise Bean y seleccionamos nuestro Session bean dentro del EJB
7.El Servlet nos quedará:
@WebServlet(name = "ServletBuscadorEmpleados", urlPatterns = {"/ServletBuscadorEmpleados"})
public class ServletBuscadorEmpleados extends HttpServlet {
    @EJB
    private SessionBeanBuscadorEmpleadosRemote sessionBeanBuscadorEmpleados;
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet ServletBuscadorEmpleados</title>");           
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Tabla de Empleados:</h1>");
            int numero = Integer.parseInt(request.getParameter("txtnumerodep"));
            String tabla = sessionBeanBuscadorEmpleados.getEmpleadosDepartamento(numero);
            out.println(tabla);
            out.println("</body>");

No hay comentarios:

Publicar un comentario