Connection conn = null;
PreparedStatement stmt = null;
Usuario usuario = new Usuario();
frmCadUsuarios frmCad = new frmCadUsuarios() ;
public void inserir () throws SQLException
{
…
o problema está dando nesta linha aqui
frmCadUsuarios frmCad = new frmCadUsuarios() ;
o construtor esta declarado na visao.frmCadUsuarios conforme abaixo:
public frmCadUsuarios() {
initComponents();
}
E está dando o seguinte erro:
Exception in thread “AWT-EventQueue-0” java.lang.StackOverflowError
at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:2063)
at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:2063)
at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:2063)
at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:2063)
at sun.awt.SunToolkit.isInstanceOf(SunToolkit.java:2063)
Alguem poderia me dizer o que estou fazendo de errado, por favor?
Eu só queria declarar o form no dao para quando abrir já carregar as informações do usuário na grid.
É que o DAO está chamando o Form e o Form está chamando o DAO num loop infinito.
Só não sei como resolver isso
ou eu coloco a declaração do dao aqui no form assim:
public frmCadUsuarios() {
initComponents();
this.setLocation(550,250);
DAOUsuario dao = new DAOUsuario();
dao.listarUsuarios();
ou eu coloco a declaração do form no dao assim:
public void listarUsuarios () throws SQLException
{
Só uma pequena observação, quando se usa o padrão DAO, ele não deve enxergar a view da sua aplicação. Este padrão é especifico para lidar com banco de dados e nada mais. Se você coloca uma view lá dentro está quebrando as regras do padrão. Formulário de cadastro não tem ligação nenhuma com DAO. O objeto Usuario você pode usar no DAO porque é o modelo da sua aplicação, é a forma de retorno de dados das consultas ou mesmo para atribuir dados as operações de escrita no banco, mas repetindo, o formulário não.
Nem imagino o motivo pelo qual vc precisa do objeto de seu formulário lá no DAO.
Dê uma olhada nesse tutorial Utilizando Swing com Banco de Dados
Gente, agradeço pelo retorno. Mas já é o segundo tópico que evidencio que sou iniciante e vejo uma resposta como essa:
"Nem imagino o motivo pelo qual vc precisa do objeto de seu formulário lá no DAO. "
Postei em outro forum brasileiro e ao contrario de ficarem se achando, me ajudaram com a solução do problema que eu tinha, ou seja, tenho um problema, posto aqui no forum que serve para isso, alem de nao resolver meu problema ainda tenho outro e ainda tenho que ver pessoas se achando porque tem um conhecimento que eu não tenho e estou procurando adquirir.
Obrigado ai pelos poucos topicos que postei e que menos ainda foram respondidos, vou usar outros foruns, quando ficar bom em Java, se virar estrelinha o que não é bem meu tipo, mas enfim… volto para ficar pisando nos iniciantes junto com vocês.
Na sua classe de formulario vc apenas instancia a classe DAO e chama o metodo que desejar, ou de listagem, ou de consulta etc.
Um exemplo de codigo de listagem no meu DAO em um sistema que estou desenvolvendo afim de aprender a fazer CRUD…
` public List listarTodos() throws PersistenciaExcpetion {
List listaPessoas = new ArrayList();
try {
Connection connection = ConexaoUtil.getInstance().getConnection();
Cara veja bem você ta deturpando o padrao DAO.
Quando o @romarcio disse que nao imagina o motivo pelo qual você precisa do formulario, sim ele ta dizendo que você fez um error de iniciante. Mas ainda sim ele lhe deu uma Aula de como usar o DAO.
Se em outros foruns vc tem respostas prontas e que mantem o seu error. Pode ser até o que você quer mas não o que precisa. Devia aprender com as criticas e não copiar os MonkeyCodes.
E existe ainda outros erros que ele nao falou como Iniciar uma classe com letra minuscula. E usar o DAO dentro da classe de Modelo. Tudo isso vai lhe dar mais dor de cabeça que soluções a longo prazo. A nomeclatura da classe e convenção não obrigação. Mas o uso de DAO em modelo, esse sim será problemático.
Sinto muito @AlessandroGois se meu comentário pareceu ofensivo para você, não era minha intenção, nem a de me achar como você disse. Eu tentei antes de tudo te explicar uma regra básica do padrão DAO, até postei um link com um tutorial para você que tem um exemplo sobre o padrão DAO com Swing.
Quando fiz o comentário que você achou pejorativo não foi para desmerecer você, mas para tentar entender qual o motivo que o fez ter um objeto do formulá dentro da classe DAO. Talvez você tenha visto isso em algum tutorial, talvez um amigo seu tenha te mandado fazer assim, não sei, por isso toquei no assunto.
Seja da onde você tirou essa fonte ela está errada. E você tirou de algum lugar, porque ninguém conhece o padrão DAO sem ler sobre o assunto e acredito que você deve ter lido em algum lugar e talvez essa fonte estivesse errada, mas como posso “imaginar” de onde você encontrou ela se você não a postou ou não disse porque utilizou desta forma?
Bons estudos!
Andre e Romarcio, vida que segue, agradeço pelo retorno. Talvez seja a forma de falar de vocês mesmo que não estou habituado.
Resumindo este topico, ja fiz o mvc certinho, o dao, a visao e o controle. fiz todo o curd, a pesquisa dinamica e agora estou desenvolvendo relatorios.
estou das 6 a meia noite todos os dias vendo videos do youtube e procurando materiais para progredir. Estou nao somente aprendendo mas tocando um projetinho que ja tinha engavetado a muitos anos, agora acho que é o momento de fazê-lo.
Vamos passar uma borracha em tudo isso e seguir em frente, pode baixar esse tópico, vou abrir outros sobre reports.