Verificar se existe no BD

3 respostas
alisson027

olá estou com um problema de persistencia aqui, queria verificar se o valor q esta no jtextField ja existem no banco
mas nao sei o pq dos erros que estão dando segue o codigo

private void BtnAgendarActionPerformed(java.awt.event.ActionEvent evt) {                                           
     
        
      
         pac=jTextField1.getText();
        nutr=jTextField2.getText();
        detalhe=jTextArea1.getText();
               
        
        try {    
        Class.forName("com.mysql.jdbc.Driver");    
           Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/bdprojeto", "root","admin");    
           String veriN=("Select nome from pessoa where nome ='"+nutr+"' and tipo='N'");
           String veriP=("Select nome from pessoa where nome ='"+pac+"' and tipo='P'");
           PreparedStatement stm1 = (PreparedStatement) conn.prepareStatement(veriN);
           PreparedStatement stm2 = (PreparedStatement) conn.prepareStatement(veriP);
           stm1.execute(); 
           stm2.execute(); 
           ResultSet rs1 = stm1.getResultSet();
           ResultSet rs2 = stm2.getResultSet();
           String pa = rs2.getString("nome");
           String nu = rs1.getString("nome");
          
 
            if( !pa.equals(pac)|| pa == null){
                JOptionPane.showMessageDialog(null,"paciente não cadastrado");
           }
           if(!nu.equals(nutr)||nu==null){
            JOptionPane.showMessageDialog(null,"nutricionista não cadastrado");
           }else{
          

           String consul ="INSERT consulta (Hora,data,Nutricionista,paciente,detalhe)"+" VALUES(?,?,?,?,?)";
           PreparedStatement stm = (PreparedStatement) conn.prepareStatement(consul);  
           stm.setString(1,hora);
           stm.setString(2,data);
           stm.setString(3,nutr);
           stm.setString(4,pac);
           stm.setString(5,detalhe);
           

           stm.executeUpdate(); 
.
.
.
.
ERRO

16/06/2011 10:49:32 projeto.Consulta BtnAgendarActionPerformed
GRAVE: null
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:841)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5650)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5570)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5610)
at projeto.Consulta.BtnAgendarActionPerformed(Consulta.java:239)
at projeto.Consulta.access$000(Consulta.java:26)
at projeto.Consulta$1.actionPerformed(Consulta.java:86)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

agradeço desde ja

3 Respostas

yoshikichi

Faltou o “into”

gilmaslima
// seu problema está nessas linhas
           stm1.execute();   
           stm2.execute();   
           ResultSet rs1 = stm1.getResultSet();  
           ResultSet rs2 = stm2.getResultSet();

           String pa = rs2.getString("nome");  
           String nu = rs1.getString("nome");
// veja se isso resolve
           
           stm2.execute();   
           ResultSet rs1 = stm1.executeQuery();   
           ResultSet rs2 = stm2.executeQuery();
           
           String pa = null;  
           String nu = null;

           if(rs1.next()){
               nu = rs1.getString("nome");
           }
          
           if(rs2.next()){
               pa = rs2.getString("nome");
           }

flw!

alisson027

vlw era isso mesmo
funcionou aki

mas só pra intender direito
o que faz o[color=blue] rs1.next()[/color]?

Criado 16 de junho de 2011
Ultima resposta 16 de jun. de 2011
Respostas 3
Participantes 3