Seguinte, eu preciso de fazer um esquema usando DAO, preciso inserir/alterar uns registros.
Eh algo do tipo, se existir o registro atualiza se nao insere.
to tentando assim.
// classe modulos
public class Modulos{
private Long id;
private String modulo;
private String nomeModulo;
//get e set
// classe perfil
public class Perfil{
private Long id;
private String perfil.
private String observacao;
//get e set
}
//classe permissoes, relacionada entre Perfil e Modulos
public class Permissoes{
private Long id;
private String inserir;
private String alterar;
private String consultar;
private String imprimir;
private Modulos modulo;
private Perfil perfil;
// get e set
}
}
// aqui onde estou populando os beans e tentando usar o DAO
Perfil perfil = new Perfil();
perfil.setId(Long.parseLong(idPerfil.getText()));
Modulos modulo = new Modulos();
Permissoes permissoes = new Permissoes();
PermissoesDAO pmDAO = new PermissoesDAO();
for(int x = 0 ; x < tabelaPermissoes.getRowCount(); x++){
modulo.setId(tabelaPermissoes.getValueAt(x, 0); // id dos modulos
modulo.setInserir(tabelaPermissoes.getValueAt(x, 2);
modulo.setAlterar(tabelaPermissoes.getValueAt(x, 3);
modulo.setConsultar(tabelaPermissoes.getValueAt(x, 4);
modulo.setImprimir(tabelaPermissoes.getValueAt(x, 5);
permissoes.setPerfil(perfil);
permissoes.setModulos(modulo);
pmDAO.inserir(permissoes);
}
// aqui o meu DAO, onde tento inserir ou alterar caso exista.
public class PermissoesDAO{
public void inserir(Permissoes permissoes) throws SQLException{
PreparedStatement stm = this.con.prepareStatement("REPLACE INTO permissoes (idperfil, idmodulo, inserir, alterar, consultar, imprimir) VALUES (?,?,?,?,?,?)");
stm.setLong(1, permissoes.getPerfil().getId());
stm.setLong(2, permissoes.getModulo().getId());
stm.setString(3, permissoes.getInserir());
stm.setString(4, permissoes.getAlterar());
stm.setString(5, permissoes.getConsultar());
stm.setString(6, permissoes.getImprimir());
stm.executeUpdate();
stm.close();
}
}
O REPLACE INTO do mysql, permite alterar ou inserir registros, porem nao estou conseguindo fazer isso…Ou alguma outra maneira de fazer.
Funciona assim…Eu tenho um cadastro de Perfil e um cadastro de Modulos, logo depois eu tenho a tela de Permissoes. Nesta tela de permissoes eu tenho o Jtextfield(idPerfil), onde insiro o codigo do perfil. Logo abaixo eu tenho um JTable com todos os codigos dos modulos que tbm cadastrei no cadastro de modulos.
Bem, eu preciso inseri-los, isso eu consigo. O que nao consigo eh se no caso de eu cadastrar um novo modulo eu inseri-lo juntamente com as permissoes que ja inseri antes com relacao ao perfil, entende ???
seria algo assim.
tabela Perfil
tabela Modulos
tabela Permissoes – aqui eu insiro o codigo do Perfil e o codigo do Modulo.
No caso de eu cadastrar um novo modulo, eu quero pegar o codigo do perfil ja cadastrado e inserir o novo modulo que cadastrei.
Não sei fazer isso, por isso gostaria de saber uma maneira de fazer isso. Alguma sugestão ??? Exemplo ???
Para inserção sim, eu consigo inserir as permissoes normalmente a primeira vez.
O que preciso, eh se caso o usuario cadastrar um novo modulo ele possa vincula-lo ao perfil que ja cadastrei antes, e assim dar as permissoes ao novo modulo cadastrado com o perfil existente…Espero que entenda isso. !!!
pseudo codigo seria.
Eu queria fazer isso apenas na linha do “REPLACE INTO” do mysql que faz o trabalho de inserir ou alterar, mas ainda nao encontrei como fazer.
Pelo visto vou acabar tendo que usar o bom e velho " if " …kkkkk !!!
pois eh, hibernate naum eh uma opcao…eu ateh comecei a usa-lo, porem achei bem mais complicado e sinceramente prefiro jdbc pois tenho mais controle sobre minha aplicação.
alguma outra sugestao de como fazer isso q preciso???
Acho q vou ter q usar o bom e velho if msm…dando um for na coluna dos codigos de modulos no jtable e verificando se ja estaum cadastrados para o perfil juntamente com o while.