Fala galera, eu criei um tópico semanas atrás sobre diagrama de seqüência o pessoal respondeu, mais acabou que eu não conseguir compreender muito bem, então eu fiz um diagrama de seqüência sobre um cadastro de produto, aí eu queria que vocês verificassem pra ver se ta certo. Desde já agradeço pela atenção é pela paciência.
Eu estou utilizando swing a arquitetura tá assim uma classe Produto com os gets e sets, uma classe ProdutoBO com ás regras de negocio é uma classe ProdutoDAO com o sql. Abaixo segue a implementação do códigos de cada método.
método da classe TelaDeCadastroDeProduto
private void btnCadastrarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try{
if(vericaCamposVazios()==true){
ProdutoBO pbo = new ProdutoBO();
Produto p = new Produto();
p.setNome(textNome.getText());
p.setDescricao(textDescricao.getText());
pbo.cadastrarProduto(p);
this.limpaCampos();
}
}catch(ProdutoException e){
JOptionPane.showMessageDialog(null,e.getMessage(),
"Informação",JOptionPane.ERROR_MESSAGE);
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage(),
"Informação",JOptionPane.ERROR_MESSAGE);
}
}
método da classe ProdutoBO
public void cadastrarProduto(Produto p) throws ProdutoException,SQLException{
dao=new ProdutoDAO();
if(dao.existsNomeDescricao(p.getNome(),p.getDescricao())==true){
throw new ProdutoException("O nome é a descrição do produto já existem.");
}
else {
dao.insert(p);
}
}
método da classe ProdutoDAO
public boolean existsNomeDescricao(String nome,String descricao)throws SQLException{
boolean result=true;
PreparedStatement stmt = this.connection.prepareStatement("SELECT nome,descricao FROM Produto where nome=? and descricao=?");
stmt.setString(1,nome);
stmt.setString(2,descricao);
ResultSet rs = stmt.executeQuery();
if(rs.next())
{
result= true;
}
else{
result= false;
}
rs.close();
stmt.close();
return result;
}
método da classe ProdutoDAO
public void insert(Produto produto)throws SQLException{
//prepared statement para inserção
PreparedStatement stmt = this.connection.prepareStatement("INSERT INTO Produto (nome,descricao) values (?,?)");
// seta os valores
stmt.setString(1,produto.getNome());
stmt.setString(2,produto.getDescricao());
// executa
stmt.execute();
JOptionPane.showMessageDialog(null,"Dados inseridos com sucesso!\n " +
"O produto foi inserido com o código: " + this.verificarCodigoDoCampo(),
"Informação",JOptionPane.INFORMATION_MESSAGE);
stmt.close();
}