package dao;

import Modelo.Conexion;
import Modelo.Jardin;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class JardinBD {

    public static synchronized boolean ingresarjardin(Jardin varjardin) {
        Connection cn = null;
        boolean rpta = false;
        try {
            cn = Conexion.getConexion();
            Statement st = cn.createStatement();
            //asignamos caracteristicas del jardin
            String jard_cod = varjardin.getJard_cod();
            String jard_telefono = varjardin.getJard_telefono();
            String jard_nombre = varjardin.getJard_nombre();
            String jard_direccion = varjardin.getJard_direccion();
            String jard_comu_id = varjardin.getJard_comu_id();
            //sql para insertar
            int m = st.executeUpdate("INSERT INTO jardin (jard_cod,"
                    + "jard_telefono,jard_nombre,jard_direccion,jard_comu_id) VALUES ('" + jard_cod + "'"
                    + ",'" + jard_telefono + "','" + jard_nombre + "','" + jard_direccion + "','" + jard_comu_id + "')");
            if (m > 0) {
                rpta = true;
            } else {

                Conexion.deshacerCambios(cn);
            }
            Conexion.cerrarConexion(cn);
        } catch (SQLException e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        } catch (Exception e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        }
        return rpta;
    }

    public static synchronized boolean actualizarjardin(Jardin varjardin) {
        Connection cn = null;
        boolean rpta = false;
        try {
            cn = Conexion.getConexion();
            Statement st = cn.createStatement();
            //asignamos caracteristicas del jardin
            int jard_id = varjardin.getJard_id();
            String jard_cod = varjardin.getJard_cod();
            String jard_telefono = varjardin.getJard_telefono();
            String jard_nombre = varjardin.getJard_nombre();
            String jard_direccion = varjardin.getJard_direccion();
            String jard_comu_id = varjardin.getJard_comu_id();
            //sql para insertar
            System.out.println("update jardin set jard_cod='" + jard_cod + "'"
                    + " jard_telefono='" + jard_telefono + "' jard_nombre='" + jard_nombre + "'"
                    + " jard_direccion='" + jard_direccion + "' jard_comu_id='" + jard_comu_id + "'"
                    + " where jard_id='" + jard_id + "'");
            int m = st.executeUpdate("update jardin set jard_cod='" + jard_cod + "'"
                    + ", jard_telefono='" + jard_telefono + "', jard_nombre='" + jard_nombre + "'"
                    + ", jard_direccion='" + jard_direccion + "', jard_comu_id='" + jard_comu_id + "'"
                    + " where jard_id='" + jard_id + "'");
            
            if (m > 0) {
                rpta = true;
            } else {

                Conexion.deshacerCambios(cn);
            }
            Conexion.cerrarConexion(cn);
        } catch (SQLException e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        } catch (Exception e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        }
        return rpta;
    }

    public static synchronized boolean eliminarjardin(Jardin varjardin) {
        Connection cn = null;
        boolean rpta = false;
        try {
            cn = Conexion.getConexion();
            Statement st = cn.createStatement();
            int m = st.executeUpdate("delete from jardin where jard_id='" + varjardin.getJard_id() + "'");
            if (m > 0) {
                rpta = true;
            } else {

                Conexion.deshacerCambios(cn);
            }
            Conexion.cerrarConexion(cn);
        } catch (SQLException e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        } catch (Exception e) {
            Conexion.deshacerCambios(cn);
            Conexion.cerrarConexion(cn);
        }
        return rpta;
    }

    public static synchronized ArrayList<Jardin> obtenerjardines() {
        //El array que contendra todos nuestros productos
        ArrayList<Jardin> lista = new ArrayList<Jardin>();
        Connection cn = null;
        ResultSet rs = null;
        try {
            //SQL
            String sql = "SELECT jard_id,jard_cod,jard_telefono,jard_nombre,jard_direccion,jard_comu_id from jardin";
            cn = Conexion.getConexion();
            Statement st = cn.createStatement();
            //almacenamos datos en un resultset
            rs = st.executeQuery(sql);
            //insertamos los datos de la bd en una lista
            while (rs.next()) {
                Jardin j = new Jardin();
                //Obtenemos los valores de la consulta y creamos
                //nuestro objeto jardin
                j.setJard_id(rs.getInt("jard_id"));
                j.setJard_cod(rs.getString("jard_cod"));
                j.setJard_telefono(rs.getString("jard_telefono"));
                j.setJard_nombre(rs.getString("jard_nombre"));
                j.setJard_direccion(rs.getString("jard_direccion"));
                j.setJard_comu_id(rs.getString("jard_comu_id"));
                //Lo adicionamos a nuestra lista
                lista.add(j);
            }
            Conexion.cerrarConexion(cn);
        } catch (SQLException e) {
            Conexion.cerrarConexion(cn);
        } catch (Exception e) {
            Conexion.cerrarConexion(cn);
        }
        return lista;
    }

    public static synchronized Jardin obtenerjardin(int id) {
        //El array que contendra todos nuestros productos
        Connection cn = null;
        ResultSet rs = null;
        Jardin j = new Jardin();
        try {
            //SQL
            String sql = "SELECT jard_id,jard_cod,jard_telefono,jard_nombre,jard_direccion,jard_comu_id from jardin where jard_id='" + id + "'";
            cn = Conexion.getConexion();
            Statement st = cn.createStatement();
            //almacenamos datos en un resultset

            rs = st.executeQuery(sql);
            //insertamos los datos de la bd en una lista

            while (rs.next()) {
                //Obtenemos los valores de la consulta y creamos
                //nuestro objeto producto
                j.setJard_id(rs.getInt("jard_id"));
                j.setJard_cod(rs.getString("jard_cod"));
                j.setJard_telefono(rs.getString("jard_telefono"));
                j.setJard_nombre(rs.getString("jard_nombre"));
                j.setJard_direccion(rs.getString("jard_direccion"));
                j.setJard_comu_id(rs.getString("jard_comu_id"));

                //Lo adicionamos a nuestra lista
               
            }

            Conexion.cerrarConexion(cn);
        } catch (SQLException e) {
            Conexion.cerrarConexion(cn);
        } catch (Exception e) {
            Conexion.cerrarConexion(cn);
        }
        return j;
    }

    public int contartabla() throws SQLException {
        int ValCount = 0;
        Connection cn = null;
        String sql = "SELECT Count(*) FROM Jardin";
        cn = Conexion.getConexion();
        Statement st = cn.createStatement();

        try (ResultSet rs = st.executeQuery(sql)) {
            rs.next();
            ValCount = rs.getInt(1);
        } catch (SQLException se) {
            //handle catch
        } finally {
            Conexion.cerrarConexion(cn);
        }
        return ValCount;
    }
}
