/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import domain.Acessorio;
import domain.GrupoCarro;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import util.Conexao;
import util.ConexaoException;
import util.MinhaException;
/**
*
* @author Rodrigo Martins
*/
public class AcessorioJDBCDao implements AcessorioDao {
private Conexao connection;
String sql;
public Conexao getConnection () {
return connection;
}
public void setConnection (Conexao val) {
this.connection = val;
}
public void inserirAcessorio(Acessorio acessorio) throws MinhaException, SQLException, ConexaoException {
this.connection = FabricaConexao.obterConexao();
try {
this.connection.setAutoCommit(false);
sql = "INSERT INTO acessorio (descricao) values (?);";
PreparedStatement pstmt = this.connection.prepareStatement(sql);
pstmt.setString(1, acessorio.getDescAcessorio().toString());
pstmt.executeUpdate();
this.connection.commit();
} catch (SQLException erro) {
this.connection.rollback();
throw erro;
} finally {
this.connection.close();
}
}
public Acessorio selecionarAcessorio(Acessorio acessorio) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void removerAcessorio(Acessorio acessorio) throws SQLException, MinhaException, ConexaoException {
this.connection = FabricaConexao.obterConexao();
try
{
this.connection.setAutoCommit(false);
sql = "DELETE FROM acessorio " +
"WHERE cod_acessorio = ? ;";
PreparedStatement prepSt = this.connection.prepareStatement(sql);
prepSt.setInt(1, acessorio.getCodAcessorio());
prepSt.executeUpdate();
this.connection.commit();
}
catch(SQLException erro)
{
this.connection.rollback();
throw erro;
}
finally
{
this.connection.close();
}
}
public void alterarAcessorio(Acessorio acessorio) throws SQLException, MinhaException, ConexaoException {
this.connection = FabricaConexao.obterConexao();
try
{
this.connection.setAutoCommit(false);
sql = "UPDATE acessorio SET " +
"descricao = ? " + //1
"WHERE cod_acessorio = ? ;";
PreparedStatement prepSt = this.connection.prepareStatement(sql);
prepSt.setString(1, acessorio.getDescAcessorio());
prepSt.setInt(2, acessorio.getCodAcessorio());
prepSt.executeUpdate();
this.connection .commit();
}
catch(SQLException erro)
{
this.connection.rollback();
throw erro;
}
finally
{
this.connection.close();
}
}
public Vector<Acessorio> selecionarTodosAcessorio() throws MinhaException, SQLException, ConexaoException{
sql = "Select * from acessorio";
this.connection = FabricaConexao.obterConexao();
PreparedStatement pstmt = this.connection.prepareStatement(sql);
ResultSet res = pstmt.executeQuery();
Vector acessorios = new Vector();
while (res.next()) {
Acessorio acessorio = new Acessorio();
acessorio.setCodAcessorio(res.getInt("cod_acessorio"));
acessorio.setDescAcessorio(res.getString("descricao"));
acessorios.addElement(acessorio);
}
this.connection.close();
return acessorios;
}
public Vector<Acessorio> selecionarAcessorioGrupo(GrupoCarro grupoCarro) throws MinhaException, SQLException, ConexaoException{
String sql = "SELECT a.cod_acessorio, a.descricao " +
"FROM acessorio a, " +
"grupo_carro gc, " +
"acessorio_grupo_carro agc " +
"WHERE a.cod_acessorio = agc.cod_acessorio AND " +
"gc.cod_grupo_carro = agc.cod_grupo_carro AND " +
"gc.cod_grupo_carro = ? ;";
this.connection = FabricaConexao.obterConexao();
PreparedStatement pstmt = this.connection.prepareStatement(sql);
pstmt.setInt(1, grupoCarro.getCodGrupoCarro());
ResultSet res = pstmt.executeQuery();
Vector<Acessorio> acessorios = new Vector<Acessorio>();
if(res == null || !res.next())
return null;
while (res.next()) {
Acessorio acessorio = new Acessorio();
acessorio.setCodAcessorio(res.getInt("cod_acessorio"));
acessorio.setDescAcessorio(res.getString("descricao"));
acessorios.addElement(acessorio);
}
this.connection.close();
return acessorios;
}
}