Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.soa.entities;
- public class Client {
- private int id;
- private String name;
- private double savings;
- public Client() {
- }
- public Client(int id, String name, double savings) {
- this.id = id;
- this.name = name;
- this.savings = savings;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public double getSavings() {
- return savings;
- }
- public void setSavings(double savings) {
- this.savings = savings;
- }
- }
- package com.soa.dao;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- public class ConnectionStackOverflow {
- private final static String user = "root";
- private final static String password = "";
- public static Connection getConexion() throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
- Class.forName("com.mysql.jdbc.Driver");
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/homebanking" , user, password);
- return connection;
- }
- public static void closeConnection() throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException {
- getConexion().close();
- }
- }
- package com.soa.controllers;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import com.soa.dao.ConnectionStackOverflow;
- import com.soa.entities.Client;
- public class AccountController {
- /* Método para insertar un cliente a la DB */
- public static void insertClient(String name, String lastname, double savings) {
- Connection connection = null;
- /* Intentamos conectarnos */
- try {
- connection = ConnectionStackOverflow.getConexion();
- /* Si no es nula que entre al método que nos facilita realizar la insercción */
- if (connection != null) {
- PreparedStatement ps;
- String sql = "INSERT INTO accounts(name, lastname, savings) VALUES(?,?,?)";
- ps = connection.prepareStatement(sql);
- ps.setString(1, name);
- ps.setString(2, lastname);
- ps.setDouble(3, savings);
- ps.executeUpdate();
- ps.close();
- System.out.println("Query executed");
- } else {
- System.out.println("Connection appears to be null");
- }
- } catch (Exception error) {
- System.out.println("Cannot even connect");
- error.getMessage();
- error.printStackTrace();
- }
- }
- /*
- * Método para retornar un cliente por su id , este es que seguramente se usaría
- * en una app de Escritorio, llegando el id por un campo hidden
- */
- public static Client retriveClient(int id) {
- Connection connection = null;
- String name = null;
- double savings = 0;
- Client client = null;
- try {
- connection = ConnectionStackOverflow.getConexion();
- if (connection != null) {
- Statement st;
- String sql = "SELECT * FROM accounts WHERE id=" + id;
- st = connection.createStatement();
- ResultSet rs = st.executeQuery(sql);
- /*
- * Mientras haya un resultado en la tabla le decimos que nos lo traiga y que a
- * su vez grabe las variables recuperadas en name y savings, y por último lo
- * agregamos a un cliente nuevo
- */
- while (rs.next()) {
- name = rs.getString("name");
- savings = rs.getDouble("savings");
- client = new Client(id, name, savings);
- }
- /* Lo probamos por consola para ver si funcionó */
- System.out.println(client.getSavings());
- System.out.println("Query executed");
- } else {
- System.out.println("Connection appears to be null");
- }
- } catch (Exception error) {
- System.out.println("Cannot even connect");
- error.getMessage();
- error.printStackTrace();
- }
- return client;
- }
- /*
- * Esta consulta no es recomendada ya que lo ideal es realizar la consulta sobre
- * el id y en este caso lo estoy haciendo sobre el name y lastname, va a ser
- * untema tuyo como solucionarlo
- */
- public static double getPersistedSavings(String name, String lastname) {
- Connection connection = null;
- double savings = 0;
- Client client = null;
- try {
- connection = ConnectionStackOverflow.getConexion();
- /* Si la conexión no es nula entonces que pase al métodos de averiguación de datos */
- if (connection != null) {
- Statement st;
- String sql = "SELECT savings FROM accounts WHERE name='" + name + "' AND lastname='" + lastname + "' ";
- st = connection.createStatement();
- ResultSet rs = st.executeQuery(sql);
- /* Sólo queremos los savings o saldo, usamos el constructor vacío y le seteamos el valor recuperado */
- while (rs.next()) {
- savings = rs.getDouble("savings");
- client = new Client();
- client.setSavings(savings);
- }
- System.out.println(client.getSavings());
- System.out.println("Query executed");
- } else {
- System.out.println("Connection appears to be null");
- }
- } catch (Exception error) {
- System.out.println("Cannot even connect");
- error.getMessage();
- error.printStackTrace();
- }
- return savings;
- }
- }
- package com.soa.servlets;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import com.soa.controllers.AccountController;
- public class InsertClientServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- try {
- /* Recuperamos los datos de los inputs del jsp */
- String name = request.getParameter("name");
- String lastname = request.getParameter("lastname");
- String savings = request.getParameter("savings");
- /* Parseamos el String y lo pasamos a double */
- double doubleSavings = Double.parseDouble(savings);
- /* LLamamos al método que inserta los datos a la DB */
- AccountController.insertClient(name, lastname, doubleSavings);
- /*
- * Además de haberlo insertado creamos una session y le agremos los siguientes
- * atributos, name, lastname, savings
- */
- HttpSession session = request.getSession(false);
- session.setAttribute("name", name);
- session.setAttribute("lastname", lastname);
- session.setAttribute("savings", doubleSavings);
- /*
- * Cuando todo termina que nos derive a otra web donde vamos a consultar los
- * savings por datos persistidos y por pasamanos de sessiones
- */
- getServletConfig().getServletContext().getRequestDispatcher("/querySavings.jsp").forward(request, response);
- } catch (Exception error) {
- error.getMessage();
- error.printStackTrace();
- }
- }
- }
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- </head>
- <script type="text/javascript">
- function send() {
- var frm = document.frmInsertClient;
- frm.submit();
- }
- </script>
- <body>
- <h1>Insertar Cliente</h1>
- <form action="InsertClientServlet" method="get" name="frmInsertClient">
- <table>
- <tr>
- <td><label>Nombre: </label></td>
- <td><input type="text" name="name" /></td>
- </tr>
- <tr>
- <td><label>Apellido: </label></td>
- <td><input type="text" name="lastname" /></td>
- </tr>
- <tr>
- <td><label>Saldo: </label></td>
- <td><input type="number" name="savings" /></td>
- </tr>
- <tr>
- <td><input type="button" value="boton" onclick="send()" /></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
- package com.soa.servlets;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import com.soa.controllers.AccountController;
- public class QuerySavingsServlet extends HttpServlet {
- private static final long serialVersionUID = 1L;
- protected void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- try {
- /* Grabados en session */
- HttpSession session = request.getSession(false);
- PrintWriter pw = response.getWriter();
- pw.println("Este saldo es que escribimos en la pantallas pasadas y que lo grabamos en memoria Session");
- pw.println("****************************** " + session.getAttribute("savings")
- + " **************************************");
- /* Consultados en la Base de Datos, información persistida */
- String name = (String) session.getAttribute("name");
- String lastname = (String) session.getAttribute("lastname");
- double persistedSavings = AccountController.getPersistedSavings(name, lastname);
- pw.println("Este saldo es el que está persistido en la DB y que consultamos por medio una consulta");
- pw.println("****************************** " + persistedSavings
- + " **************************************");
- } catch (Exception error) {
- error.printStackTrace();
- }
- }
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- }
- }
- <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
- pageEncoding="ISO-8859-1"%>
- <%@ page import="com.soa.entities.Client"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Averiguar saldo</title>
- </head>
- <script type="text/javascript">
- function send() {
- var frm = document.frmSavings;
- frm.submit();
- }
- </script>
- <body>
- <h1>Averiguar saldo</h1>
- <%
- session.getAttribute("name");
- session.getAttribute("savings");
- session.getAttribute("lastname");
- %>
- Esta es la sessión de <% out.print(session.getAttribute("name")); %><br>
- <form action="QuerySavingsServlet" method="get" name="frmSavings">
- <input type="hidden" name="id" value=<% out.print(session.getAttribute("name")); %> /> <br>
- <input type="text" value=<% out.print(session.getAttribute("savings")); %>> <input type="button" value="Averiguar Saldo" onclick="send()" />
- </form>
- </body>
- </html>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- id="WebApp_ID" version="3.0">
- <display-name>StackOverflowWeb</display-name>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.html</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- <servlet>
- <servlet-name>InsertClientServlet</servlet-name>
- <servlet-class>com.soa.servlets.InsertClientServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>InsertClientServlet</servlet-name>
- <url-pattern>/InsertClientServlet</url-pattern>
- </servlet-mapping>
- <servlet>
- <servlet-name>QuerySavingsServlet</servlet-name>
- <servlet-class>com.soa.servlets.QuerySavingsServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>QuerySavingsServlet</servlet-name>
- <url-pattern>/QuerySavingsServlet</url-pattern>
- </servlet-mapping>
- </web-app>
Add Comment
Please, Sign In to add comment