package banco_imobiliario.dao;
import banco_imobiliario.model.Empresa;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
*
* @author alessandro
*/
public class EmpresaDAOImpl implements EmpresaDAO{
private Connection conexaoBanco = null;
private PreparedStatement preparedStatement = null;
private ResultSet resultadoConsulta = null;
@Override
public void insertEmpresa(Empresa empresa) {
String sqlQuery = "INSERT INTO empresa (nome, multiplicador, hipoteca, valor) VALUES (?,?,?,?)";
try {
conexaoBanco = DAOConection.getConnection();
preparedStatement = conexaoBanco.prepareStatement(sqlQuery);
preparedStatement.setString(1, empresa.getNome());
preparedStatement.setInt(2, empresa.getIndiceMultiplicador());
preparedStatement.setInt(3, (int)empresa.getHipoteca());
preparedStatement.setInt(4, (int)empresa.getPreco());
preparedStatement.execute();
preparedStatement.close();
conexaoBanco.close();
} catch (SQLException e) {
System.out.println("Erro ao inserir nova empresa: " + e);
}
}
@Override
public void updateEmpresa(Empresa empresa) {
String sqlQuery = "UPDATE empresa SET nome = ?, multiplicador = ?, hipoteca = ?, valor = ? " +
"WHERE id = ?";
try {
conexaoBanco = DAOConection.getConnection();
preparedStatement = conexaoBanco.prepareStatement(sqlQuery);
preparedStatement.setString(1, empresa.getNome());
preparedStatement.setInt(2, empresa.getIndiceMultiplicador());
preparedStatement.setInt(3, (int)empresa.getHipoteca());
preparedStatement.setInt(4, (int)empresa.getPreco());
preparedStatement.setInt(5, empresa.getId());
preparedStatement.executeUpdate();
preparedStatement.close();
conexaoBanco.close();
} catch (SQLException e) {
System.out.println("Erro ao atualizar empresa: " + e);
}
}
@Override
public void deleteEmpresa(int id) {
String sqlQuery = "DELETE FROM empresa WHERE id = ?";
try {
conexaoBanco = DAOConection.getConnection();
preparedStatement = conexaoBanco.prepareStatement(sqlQuery);
preparedStatement.setInt(1, id);
preparedStatement.execute();
preparedStatement.close();
conexaoBanco.close();
} catch (SQLException e) {
System.out.println("Erro ao deletar empresa: " + e);
}
}
@Override
public ArrayList<Empresa> getAllEmpresas() {
Empresa empresa = null;
ArrayList<Empresa> empresas = new ArrayList<>();
String sqlQuery = "SELECT id, nome, multiplicador, hipoteca, valor, indice FROM empresa";
try {
conexaoBanco = DAOConection.getConnection();
preparedStatement = conexaoBanco.prepareStatement(sqlQuery);
resultadoConsulta = preparedStatement.executeQuery();
while(resultadoConsulta.next()){
empresa = new Empresa();
empresa.setId( Integer.valueOf(resultadoConsulta.getString("id")) );
empresa.setNome( resultadoConsulta.getString("nome") );
empresa.setIndiceMultiplicador( Integer.valueOf(resultadoConsulta.getString("multiplicador")) );
empresa.setHipoteca( Integer.valueOf(resultadoConsulta.getString("hipoteca")) );
empresa.setPreco(Integer.valueOf(resultadoConsulta.getString("valor")) );
empresa.setIndice(Integer.valueOf(resultadoConsulta.getString("indice")) );
empresas.add(empresa);
}
preparedStatement.close();
conexaoBanco.close();
} catch (SQLException e) {
System.out.println("Erro ao realizar o select na tabela empresa: " + e);
}
return empresas;
}
@Override
public Empresa buscarEmpresa(int id) {
Empresa empresa = new Empresa();
String sqlQuery = "SELECT id, nome, multiplicador, hipoteca, valor, indice FROM empresa WHERE indice = ?";
try {
conexaoBanco = DAOConection.getConnection();
preparedStatement = conexaoBanco.prepareStatement(sqlQuery);
preparedStatement.setInt(1, id);
resultadoConsulta = preparedStatement.executeQuery();
while(resultadoConsulta.next()){
empresa.setId( Integer.valueOf(resultadoConsulta.getString("id")) );
empresa.setNome( resultadoConsulta.getString("nome") );
empresa.setIndiceMultiplicador( Integer.valueOf(resultadoConsulta.getString("multiplicador")) );
empresa.setHipoteca( Integer.valueOf(resultadoConsulta.getString("hipoteca")) );
empresa.setPreco(Integer.valueOf(resultadoConsulta.getString("valor")) );
empresa.setIndice(Integer.valueOf(resultadoConsulta.getString("indice")) );
}
preparedStatement.close();
conexaoBanco.close();
} catch (SQLException e) {
System.out.println("Erro ao realizar o select na tabela empresa: " + e);
}
return empresa;
}
}