alexNeto/previsao-tempo

View on GitHub
src/main/java/com/ts/previsao/tempo/previsao/PrevisaoDAO.java

Summary

Maintainability
A
0 mins
Test Coverage
package com.ts.previsao.tempo.previsao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.ts.previsao.tempo.DataBaseConnection;

public class PrevisaoDAO extends DataBaseConnection {

    private static PrevisaoDAO instance;

    public boolean createTablePrevisao() {
        StringBuilder sqlBuilder = new StringBuilder();
        sqlBuilder.append("create table if not exists ").append("tbprevisao");
        sqlBuilder.append("(");
        sqlBuilder.append("id int not null").append(",");
        sqlBuilder.append("dia varchar(10) not null").append(",");
        sqlBuilder.append("tempo char(3) not null").append(",");
        sqlBuilder.append("minima float not null").append(",");
        sqlBuilder.append("maxima float not null").append(",");
        sqlBuilder.append("iuv float not null").append(",");
        sqlBuilder.append("primary key (id, dia)").append(",");
        sqlBuilder.append("foreign key (id) references tbcidade(id)");
        sqlBuilder.append(")");
        try (Connection conn = DriverManager.getConnection(URL); Statement stmt = conn.createStatement()) {
            stmt.execute(sqlBuilder.toString());
        } catch (SQLException e) {
            return false;
        }
        return true;
    }

    public boolean insertPrevisao(PrevisaoRepository previsao) {
        String sql = "insert or ignore into tbprevisao(id, dia, tempo, minima, maxima, iuv) values(?, ?, ?, ?, ?, ?)";
        try (Connection conn = this.conecta(); PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setInt(1, previsao.getId());
            stmt.setString(2, previsao.getDia());
            stmt.setString(3, previsao.getTempo());
            stmt.setDouble(4, previsao.getMinima());
            stmt.setDouble(5, previsao.getMaxima());
            stmt.setDouble(6, previsao.getIuv());
            stmt.executeUpdate();
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public List<PrevisaoRepository> selectAllPrevisao(Integer id) {
        StringBuilder sql = new StringBuilder();
        sql.append("select * from tbprevisao where id=").append(id);
        List<PrevisaoRepository> previsoes = new ArrayList<>();
        try (Connection conn = this.conecta();
                Statement stmt = conn.createStatement();
                ResultSet rs = stmt.executeQuery(sql.toString())) {
            PrevisaoRepository previsao;
            while (rs.next()) {
                previsao = new PrevisaoRepository();
                previsao.setDia(rs.getString("dia"));
                previsao.setId(rs.getInt("id"));
                previsao.setIuv(rs.getDouble("iuv"));
                previsao.setMaxima(rs.getDouble("maxima"));
                previsao.setMinima(rs.getDouble("minima"));
                previsao.setTempo(rs.getString("tempo"));
                previsoes.add(previsao);
            }
        } catch (Exception e) {
            return null;
        }
        return previsoes;
    }

    public boolean removeAllPrevisao(Integer id) {
        StringBuilder sqlBuilder = new StringBuilder();
        sqlBuilder.append("delete from tbprevisao where id=").append(id);
        try (Connection conn = this.conecta(); PreparedStatement stmt = conn.prepareStatement(sqlBuilder.toString())) {
            stmt.executeUpdate();
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public static PrevisaoDAO getPrevisaoDAO() {
        if (instance == null) {
            instance = new PrevisaoDAO();
        }
        return instance;
    }
}