ola pessoal, tenho esse metodo inserir no meu pacote dao, e quero que se ele inserir corretamente ou não, meu pacote controller exiba uma mensagem…
Alguem pode me ajudar?
Meu codigo de inserir do pacote dao.
public void inserirOcorrencia(DomainObject domainObject) {
Ocorrencia ocorrencia = (Ocorrencia) domainObject;
try {
Connection conn = Conexao.getConnection();
//Obtendo a conexão com o BD
//Criando a string com sql a ser executada
String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?)";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement(sql);
//Definindo o primeiro parâmetro
pst.setInt(1, ocorrencia.getIDOcorrencia());
pst.setString(2, ocorrencia.getDescricao());
//Definindo o segundo parâmetro
pst.setString(3, ocorrencia.getData());
pst.setString(4, ocorrencia.getServicos().getDescricaoServ());
// pst.setString(5,Servicos.getDescricaoServ());
pst.setString(5, ocorrencia.getVeiculo().getPlaca());
pst.setString(6, ocorrencia.getCliente().getNomecli());
//Executando a sql
pst.executeUpdate();
//Fechando o tratamento da sql
pst.close();
//Fechando a conexão
conn.close();
JOptionPane.showMessageDialog(null,"Salvo com Sucesso");
} catch (Exception e) {
}
}
Aqui é meu pacote controller:
[code]
public class Fachadaocorrencia implements IFachadaOcorrencia {
public void inserirOcorrencia(DomainObject domainObject){
IDAOocorrencia dao = new DAOOcorrencia();
dao.inserirOcorrencia(domainObject);
}[/code]
Apenas quero que ele exiba uma mensagem se ele inserir ou não.
faz assim
public void inserirOcorrencia(DomainObject domainObject) {
Ocorrencia ocorrencia = (Ocorrencia) domainObject;
int resposta;
resposta = JOptionPane.showOptionDialog(null, "Tem Certeza que Deseja Inserir este Usuario?","Atenção",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if(resposta == JOptionPane.YES_OPTION){
try {
Connection conn = Conexao.getConnection();
//Obtendo a conexão com o BD
//Criando a string com sql a ser executada
String sql = "INSERT INTO ocorrencia VALUES (?,?,?,?,?,?)";
//Tratando a sql a ser executada
PreparedStatement pst = conn.prepareStatement(sql);
//Definindo o primeiro parâmetro
pst.setInt(1, ocorrencia.getIDOcorrencia());
pst.setString(2, ocorrencia.getDescricao());
pst.setString(3, ocorrencia.getData());
pst.setString(4, ocorrencia.getServicos().getDescricaoServ());
pst.setString(5, ocorrencia.getVeiculo().getPlaca());
pst.setString(6, ocorrencia.getCliente().getNomecli());
// aqui coloquei o if para ele nao passar direto pois da forma que estava mesmo dando algum erro ele iria dar a mensagem de salvo com sucesso
int valor = pst.executeUpdate();
if(valor !=0){
JOptionPane.showMessageDialog(null,"Salvo com Sucesso");
}else{
JOptionPane.showMessageDialog(null,"Error");
}
//Fechando o tratamento da sql
pst.close();
//Fechando a conexão
conn.close();
} catch (Exception e) {
}
}
LEgal entendi, mais eu teria que exibir a mensagem no controller, e esse metodo esta no pacote DAO.
Como eu poderia fazer?
[quote=souzajhonatan]LEgal entendi, mais eu teria que exibir a mensagem no controller, e esse metodo esta no pacote DAO.
Como eu poderia fazer?[/quote]
entao voce esta utilizando MVC (model view controller) o model e as classes persistentes o view sao as suas classes GUI e o controller e suas DAO
axo que e isso que voce quer mesmo pelo que entendi
Eu montei assim, tenho uma camada Controller, onde possuo o Fachada que possui a regra de negócio. Uma interface IFachada que chama os metodo da camada DAO.
Mais um pacote Modelo. onde possuo minhas classes estendendo a classe DomainObject.
Tenho meu pacote Util, onde tem minha classe de conexão
E minha visão que é meu JFrame.
Então no meu dao vou ter o metodo inserir, e no controller (Fachada) vou chamar o metodo inserir e exibiri a mensagem de confirmação…
Eu consegui exibir a mensagem apenas direto do pacote DAO, direto no metodo ok?
mais no pacote DAO teria que ser apenas o metodo que será chamda dno controller…
Blz?
entao…
o seu exemplo que modifiquei esta certo… nao importa em qual pacote vai coloca-lo… quando chamar esse metodo inserir e se por ventura der erro ele vai retornar a mensagem com erro… e simples…
Mas não tem problema de exibir uma mensagem no metodo que esta no pacote dao?
estou fazendo a chamada do metodo no controle assim:
public class Fachadaocorrencia implements IFachadaOcorrencia {
public void inserirOcorrencia(DomainObject domainObject){
IDAOocorrencia dao = new DAOOcorrencia();
dao.inserirOcorrencia(domainObject);