I am developing an application that is about an arms store.
I have class Produto
with subclasses Arma
, Faca
and Municao
. In this project I'm applying the DAO standard, but I do not quite understand how your subclass application works.
I have the class ProdutoDAO
:
public class ProdutoDAO implements GenericDAO<Produto> {
Connection connection = null;
@Override
public void save(Produto produto) throws SQLException {
try {
connection = new ConnectionFactory().getConnection();
String sql = "INSERT INTO PRODUTO(ID, ID_MARCA, DESCRICAO,"
+ "PESO) VALUES (?, ?, ?, ?);" ;
PreparedStatement pstm = connection.prepareStatement(sql);
pstm.setInt(1, produto.getId());
pstm.setString(2, produto.getDescricao());
pstm.setDouble(3, produto.getPeso());
pstm.execute();
} catch (SQLException sqle) {
JOptionPane.showMessageDialog(null, "Erro ao inserir o produto no "
+ "banco de dados." + sqle.getMessage());
sqle.printStackTrace();
} catch (Exception ex) {
JOptionPane.showMessageDialog(null,
"Ocorreu um erro. Contate o suporte.\n" + ex.getMessage());
ex.printStackTrace();
} finally {
connection.close();
}
}
}
My question is in relation to the ArmaDAO
class. How should I implement it?
Should it extend the ProdutoDAO
class? Should the ProdutoDAO
class be abstract?