Problemas com banco de dados.[resolvido]

5 respostas
C_Lucas

Boa noite.
Desenvolvi uma classe para poder se conectar a um bd e enviar dados a ele, por meio de JtextFields, no caso tenho um bd com duas tabelas, quero saber se é possível criar uma conexão para cada tabela? caso for, mandar as informações de uma JFormattedTextField consiste no mesmo procedimento de uma JTextField? e queria a ajuda de algé para analisar um pedaço do código pois criei a conexão para as duas tabelas o codigo aparenemente é o mesmo(com exceção de alguns if’s e elses) e um funciona e o outro não. POstarei pirmeiro o que esta funcionando:

b_enviar.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
String password1 = new String(p_pass1.getText());
 String password2 = new String(p_pass2.getText());
           if(password1 == null ? "" == null : password1.equals("")){
               JOptionPane.showMessageDialog(null,
       "Preencha o campo 1 da senha",
   "Operação não efetuada",JOptionPane.ERROR_MESSAGE,
     null);}if(password2 == null ? "" == null : password2.equals("")){
         JOptionPane.showMessageDialog(null,
       "Preencha o campo 2 da senha",
   "Operação não efetuada",JOptionPane.ERROR_MESSAGE,
     null);}

 try{
    String url ="jdbc:odbc:admin_user";
    String username="";
    String password = "";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conexaoadmin;
    conexaoadmin = DriverManager.getConnection(url,username,password);
    Statement statementadmin ;
    statementadmin = conexaoadmin.createStatement();
    statementadmin.executeUpdate("INSERT INTO usuario(nome,senha)VALUES('"+t_nome.getText()+"','"+p_pass2.getText()+"')");

    JOptionPane.showMessageDialog(null,"Os dados forão enviados",
            "Gravação de dados",
            JOptionPane.INFORMATION_MESSAGE);

        }
catch(Exception event)
{
    event.printStackTrace();

{JOptionPane.showMessageDialog(null,"Conexão falhou",
            "Tentativa de conexão falhou",
            JOptionPane.ERROR_MESSAGE);
}
}

Este abaixo não funciona cai direto no catch

ETCC.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){




        String snome = new String(textonome.getText());
        String srgm = new String(textorgm.getText());
        String sendereco = new String(textoendereco.getText());
        String scurso = new String (textocurso.getText());
        String snume = new String (textonume.getText()); // Essa string é para o nº da casa
        String semail = new String(textoemailt.getText());
        /*Será usado um metodo diferente para
         *  as caixas de texto com formatação
         * esse método irá retirar quaisquer caracteres
         * diferentes de 0 e 9
         */
        String scep = new String(cept.getText().replaceAll("[^0-9]",""));
        String stelefone = new String(telt.getText().replaceAll("[^0-9]",""));
        String sdata = new String(datat.getText().replaceAll("[^0-9]",""));

        // verifica se as caixas de texto estão vazias

        if(snome == null ? "" == null : snome.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo NOME esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(srgm == null? "" == null : srgm.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo RGM esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(sendereco == null ? "" == null : sendereco.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo ENDEREÇO esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(scurso == null ? "" == null : scurso.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo CURSO esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(snume == null ? "" == null : snume.equals("")){
           JOptionPane.showMessageDialog(null,
       "O campo N° DA CASA esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(semail == null ? "" == null : semail.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo EMAIL esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(scep == null ? "" == null : scep.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo CEP esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(stelefone == null ?""== null:stelefone.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo TELEFONE esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }
        if(sdata == null ?"" == null: sdata.equals("")){
            JOptionPane.showMessageDialog(null,
       "O campo DATA DA MATRICULA esta em branco",
   "Erro ao enviar dados",JOptionPane.ERROR_MESSAGE,
     null);
        }

        else{ JOptionPane.showMessageDialog(null,
       "Conexão está sendo criada",
   "Criando conexão",JOptionPane.WARNING_MESSAGE,null);
        }
        // criando método para configurar caixas de texto que aceitaram somente números

textonume.addFocusListener((new java.awt.event.FocusAdapter(){
            @Override
			public void focusLost(java.awt.event.FocusEvent evt) {


        long text_nume;
        if(textonume.getText().length()!=0){
            try{
                text_nume = Long.parseLong(textonume.getText());
            }
            catch(NumberFormatException excp ){
                textonume.setText(null);
                JOptionPane.showMessageDialog(null,
       "Este campo só aceita números",
   "Erro ",JOptionPane.ERROR_MESSAGE,
     null);

            }
        }
            }}));

            textorgm.addFocusListener((new java.awt.event.FocusAdapter(){
            @Override
			public void focusLost(java.awt.event.FocusEvent evt) {


        long text_rgm;
        if(textorgm.getText().length()!=0){
            try{
                text_rgm = Long.parseLong(textorgm.getText());
            }
            catch(NumberFormatException excp ){
                textorgm.setText(null);
                JOptionPane.showMessageDialog(null,
       "Este campo só aceita números",
   "Erro ",JOptionPane.ERROR_MESSAGE,
     null);

            }
        }
            }}));
        // enviando os dados para o banco de dados

            try{
    String url ="jdbc:odbc:admin_user";
    String username="";
    String password="";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conexao;
    conexao = DriverManager.getConnection(url,username,password);
    Statement statement ;
    statement = conexao.createStatement();
    statement.executeUpdate("INSERT INTO cadastrotcc (nome,rgm,curso,email,cep,telefone,matricula,endereço,n_da_casa)VALUES('"+textonome.getText()+"',
'"+textorgm.getText()+"','"+textocurso.getText()+"','"+textoemailt.getText()+"','"+cept.getText()+"',
'"+telt.getText()+"','"+datat.getText()+"','"+textoendereco.getText()+"','"+textonume.getText()+"')");


    JOptionPane.showMessageDialog(null,"Os dados forão enviados",
            "Gravação de dados",
            JOptionPane.INFORMATION_MESSAGE);

        }
catch(Exception event)
{
    event.printStackTrace();

{JOptionPane.showMessageDialog(null,"Conexão falhou",
            "Tentativa de conexão falhou",
            JOptionPane.ERROR_MESSAGE);
}
}

    }
});

Por favor preciso de ajuda pois não acho a explicação para isso :frowning: :frowning: . Obrigado

5 Respostas

S

Post o erro pra gente dar uma olhada.
Qual seu bd ?

C_Lucas

meu bd é o access, é que comecei agora. To tentando pelo mais fácil pra depois usar MySQL . quando eu executo cai no catch ou invés de fazer o try mas a aplicação roda. Quando eu faço a depuração consta o seguinte erro:

java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] A instru

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)

at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)

at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)

at chrisjava$11.actionPerformed(chrisjava.java:512)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)

at java.awt.Component.processMouseEvent(Component.java:5517)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)

at java.awt.Component.processEvent(Component.java:5282)

at java.awt.Container.processEvent(Container.java:1966)

at java.awt.Component.dispatchEventImpl(Component.java:3984)

at java.awt.Container.dispatchEventImpl(Container.java:2024)

at java.awt.Component.dispatchEvent(Component.java:3819)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)

at java.awt.Container.dispatchEventImpl(Container.java:2010)

at java.awt.Window.dispatchEventImpl(Window.java:1791)

at java.awt.Component.dispatchEvent(Component.java:3819)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

não era pra sair esses emoticons, considere-os como “]”. Santos fernando poderia me dizer o que exatamente é isso, pois so entendi que o erro começa da linha 512 que é onde começo a conexão com BD. Obrigado

C_Lucas

Ajudem-me por favor. não sei a solução.

S

Leia apenas o primeiro assunto dessa apostila, trata-se de banco de dados com mysql, muito boa e é exatamente o que vc precisa.
apostila

C_Lucas

Valew santos fernandes. Obrigado pela ajuda :smiley: . Abraço

Criado 29 de maio de 2010
Ultima resposta 30 de mai. de 2010
Respostas 5
Participantes 2