Advertisement
Guest User

Untitled

a guest
Jun 21st, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.70 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package banco;
  7.  
  8. import java.sql.Connection;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.ResultSetMetaData;
  12. import java.sql.SQLException;
  13. import java.sql.Statement;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16.  
  17.  
  18. /**
  19.  *
  20.  * @author Admin
  21.  */
  22. public class bancoSQL {
  23.     protected Connection conexionBD = null;
  24.  
  25.     public bancoSQL(){
  26.      try
  27.          {
  28.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  29.          }
  30.          catch (Exception ex)
  31.          {
  32.             System.out.println(ex.getMessage());
  33.          }
  34.     }
  35.  
  36.  
  37.    
  38.     public String conectarBD(String usuario, String clave)
  39.    {
  40.       String error=null;
  41.       if (this.conexionBD == null)
  42.       {
  43.          try
  44.          {
  45.             Class.forName("com.mysql.jdbc.Driver").newInstance();
  46.          }
  47.          catch (Exception ex)
  48.          {
  49.             System.out.println(ex.getMessage());
  50.          }
  51.  
  52.          try
  53.          {
  54.             String servidor = "localhost:3306";
  55.             String baseDatos = "banco";
  56.             String uriConexion = "jdbc:mysql://" + servidor + "/" + baseDatos;
  57.  
  58.             this.conexionBD = DriverManager.getConnection(uriConexion, usuario, clave);
  59.          }
  60.          catch (SQLException ex)
  61.          {
  62.             error="Se produjo un error al intentar conectarse a la base de datos.\n" + ex.getMessage();
  63.             System.out.println("SQLException: " + ex.getMessage());
  64.             System.out.println("SQLState: " + ex.getSQLState());
  65.             System.out.println("VendorError: " + ex.getErrorCode());
  66.          }
  67.       }
  68.       return error;
  69.    }
  70.  
  71.    public void desconectarBD()
  72.    {
  73.       if (this.conexionBD != null)
  74.       {
  75.          try
  76.          {
  77.             this.conexionBD.close();
  78.             this.conexionBD = null;
  79.          }
  80.          catch (SQLException ex)
  81.          {
  82.             System.out.println("SQLException: " + ex.getMessage());
  83.             System.out.println("SQLState: " + ex.getSQLState());
  84.             System.out.println("VendorError: " + ex.getErrorCode());
  85.          }
  86.       }
  87.    }
  88.  
  89.  
  90.    public ArrayList<String> obtenerAtributos(String nbreTabla) throws SQLException{
  91.  
  92.          conectarBD("root", "inteldp35dp");
  93.          String query="DESCRIBE "+nbreTabla;
  94.          ArrayList<String> atrr=new ArrayList<String>();
  95.          // se crea una sentencia o comando jdbc para realizar la consulta
  96.          Statement stmt = this.conexionBD.createStatement();
  97.          // se ejecuta la sentencia y se recibe un resultset
  98.          ResultSet rs = stmt.executeQuery(query);        
  99.          
  100.          while(rs.next()){
  101.              atrr.add((String)rs.getObject(1));
  102.          }
  103.          stmt.close();
  104.          rs.close();
  105.          desconectarBD();
  106.          return atrr;
  107.    }
  108.  
  109.  
  110.     public ArrayList<String> obtenerTablas() throws SQLException{
  111.  
  112.          conectarBD("root", "pillos");
  113.          String query="SHOW TABLES FROM banco";
  114.          ArrayList<String> atrr=new ArrayList<String>();
  115.          // se crea una sentencia o comando jdbc para realizar la consulta
  116.          Statement stmt = this.conexionBD.createStatement();
  117.          // se ejecuta la sentencia y se recibe un resultset
  118.          ResultSet rs = stmt.executeQuery(query);
  119.          while(rs.next()){
  120.              atrr.add((String)rs.getObject(1));
  121.          }
  122.          stmt.close();
  123.          rs.close();
  124.          desconectarBD();
  125.          return atrr;
  126.    }
  127.  
  128.  
  129.     public ArrayList<ArrayList<String>> rsToArrayList(ResultSet rs) throws SQLException{
  130.  
  131.         ArrayList<ArrayList<String>> result=new ArrayList<ArrayList<String>>();
  132.         ResultSetMetaData rsMetaData = rs.getMetaData();
  133.         int cols = rsMetaData.getColumnCount();
  134.  
  135.          while(rs.next()){
  136.              ArrayList<String> row=new ArrayList<String>();
  137.              for (int j=1;j<=cols;j++)
  138.              {
  139.                  String cell=rs.getObject(j).toString();
  140.                  row.add(cell);
  141.              }
  142.              result.add(row);
  143.          }
  144.         return result;
  145.      }
  146.    
  147.     public boolean atm_verifPIN(String PIN, String nro_tarjeta) throws SQLException{
  148.         //Debe estar la conexion con la base de datos establecida
  149.         conectarBD("atm","atm");
  150.         Statement stmt = this.conexionBD.createStatement();
  151.         String Query="SELECT PIN, nro_tarjeta FROM Tarjeta"
  152.                    + "WHERE nro_tarjeta="+nro_tarjeta+" AND "
  153.                    + "      PIN="+PIN;                  
  154.         ResultSet rs = stmt.executeQuery(Query);
  155.         boolean vale = rs.next();
  156.         stmt.close();
  157.         desconectarBD();
  158.         return vale;
  159.     }
  160.  
  161.     public String atm_obtenerSaldoTarjeta(String PIN, String nro_tarjeta) throws SQLException{
  162.         conectarBD("atm", "atm");
  163.         //Obtener saldo
  164.         Statement stmt=this.conexionBD.createStatement();
  165.  
  166.         String Query="SELECT Saldo FROM Tarjeta join Caja_Ahorro USING (nro_ca)"
  167.             + "   WHERE nro_tarjeta="+nro_tarjeta;
  168.         ResultSet rs = stmt.executeQuery(Query);
  169.         rs.next();
  170.         String Saldo=rs.getObject(1).toString();
  171.         stmt.close();
  172.         desconectarBD();
  173.         return  Saldo;
  174.     }
  175.  
  176.     public ArrayList<ArrayList<String>> atm_formatearMovimientos(ArrayList<ArrayList<String>> movimientos){
  177.  
  178.         //Montos para transferencia, extraccion y debito deben mostrarse negativos
  179.         for (ArrayList<String> mov:movimientos){
  180.              String tipo = mov.get(3);
  181.             if (tipo.equals("Transferencia") ||
  182.                 tipo.equals("Extraccion") ||
  183.                 tipo.equals("Debito") ){
  184.                     String monto=mov.get(4);
  185.                     monto="-"+monto;
  186.             }
  187.         }
  188.         return movimientos;
  189.    }
  190.  
  191.     public ArrayList<ArrayList<String>> atm_obtenerUltimosMovimientos() throws SQLException{
  192.         conectarBD("atm", "atm");
  193.         Statement stmt=this.conexionBD.createStatement();
  194.  
  195.         String Query="SELECT fecha, hora, tipo, monto, cod_caja, destino"
  196.                 + "FROM trans_cajas_ahorro"
  197.                 + "ORDER BY fecha desc"
  198.                 + "limit 0,15";
  199.  
  200.         ResultSet rs = stmt.executeQuery(Query);
  201.         ArrayList<ArrayList<String>> result=this.rsToArrayList(rs);
  202.         stmt.close();
  203.         desconectarBD();
  204.         return  atm_formatearMovimientos(result);
  205.     }
  206.  
  207.         public ArrayList<ArrayList<String>> atm_obtenerPeriodoMovimientos(Date inicio, Date fin) throws SQLException{
  208.         conectarBD("atm", "atm");
  209.         Statement stmt=this.conexionBD.createStatement();
  210.         Fechas feca=new Fechas();
  211.         String Query=""
  212.                 + "SELECT fecha, hora, tipo, monto, cod_caja, destino"
  213.                 + "FROM trans_cajas_ahorro"
  214.                 + "WHERE fecha<="+feca.convertirDateAStringDB(fin)+""
  215.                 + "AND fecha >="+feca.convertirDateAStringDB(inicio)
  216.                 + "ORDER BY fecha desc";
  217.  
  218.         ResultSet rs = stmt.executeQuery(Query);
  219.         ArrayList<ArrayList<String>> result=this.rsToArrayList(rs);
  220.         stmt.close();
  221.         desconectarBD();
  222.         return  atm_formatearMovimientos(result);
  223.     }
  224.  
  225.  
  226.      public ArrayList<ArrayList<String>> consulta(String query) throws SQLException{
  227.         /* Debe ser una consulta (select) */
  228.          ArrayList<ArrayList<String>>  result=new ArrayList<ArrayList<String>>();
  229.          conectarBD("root", "");
  230.          Statement stmt = this.conexionBD.createStatement();
  231.          ResultSet rs = stmt.executeQuery(query);
  232.  
  233.          result=this.rsToArrayList(rs);
  234.  
  235.          stmt.close();
  236.          rs.close();
  237.          desconectarBD();
  238.          return result;
  239.    }
  240.  
  241.  
  242.  
  243.  
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement