2017-10-01 1 views
0

Je crée un simple jFrame de connexion JavaSE dans Netbeans. J'ai fait une base de données SQL interne, mais le problème est que lors du démarrage de l'application, il a la sortie de la console suivante:org.apache.derby.client.net.NetConnection40 ne peut pas être converti en erreur com.mysql.jdbc.Connection même après le succès de la connexion?

run: 
CONNECTION DONE! 
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.apache.derby.client.net.NetConnection40 cannot be cast to com.mysql.jdbc.Connection 
    at DBConnection.connect(DBConnection.java:31) 
    at mainFrame.<init>(mainFrame.java:29) 
    at mainFrame$7.run(mainFrame.java:360) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 
BUILD SUCCESSFUL (total time: 1 second) 

Il dit connexion fait, mais donne alors l'erreur. J'ai également importé le fichier derbyclient.jar dans les bibliothèques. Je recherchais les solutions en ligne et essayé de remplacer:

jdbc:derby://localhost:1527/JavaDB; 

Avec ceci:

jdbc:derby://localhost:1527/JavaDB;create=true 

CODE: mainFrame

import com.mysql.jdbc.Connection; 
import com.mysql.jdbc.PreparedStatement; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Toolkit; 
import java.sql.ResultSet; 
import javax.swing.ImageIcon; 
import javax.swing.JOptionPane; 
import javax.swing.SwingConstants; 

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* 
* @author sniper 
*/ 
public class mainFrame extends javax.swing.JFrame { 

    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); // Getting dimentions for screen size 
    int xMouse; // for movement x axis 
    int yMouse; // for movement y axis 

    // FOR SQL CONNECTION 
    Connection conn = new DBConnection().connect(); 

    /** 
    * Creates new form mainFrame 
    */ 
    public mainFrame() { 
     initComponents(); 
     this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2); // setting screen in center 
     txtUsername.setHorizontalAlignment(SwingConstants.CENTER); // center align txtUsername text 
     txtPassword.setHorizontalAlignment(SwingConstants.CENTER); // center align txtPassword text 
    } 

    /** 
    * This method is called from within the constructor to initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is always 
    * regenerated by the Form Editor. 
    */ 
    @SuppressWarnings("unchecked") 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">       
    private void initComponents() { 

     jPanel1 = new javax.swing.JPanel(); 
     jPanel2 = new javax.swing.JPanel(); 
     lblHeaderText = new javax.swing.JLabel(); 
     txtUsername = new javax.swing.JTextField(); 
     txtPassword = new javax.swing.JPasswordField(); 
     lblLoginTypeText = new javax.swing.JLabel(); 
     cbType = new javax.swing.JComboBox<>(); 
     btnEnter = new javax.swing.JLabel(); 
     lblTopText = new javax.swing.JLabel(); 
     lblIcon = new javax.swing.JLabel(); 
     lblExit = new javax.swing.JLabel(); 

     setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
     setTitle("SGMS"); 
     setUndecorated(true); 
     setResizable(false); 

     jPanel1.setBackground(new java.awt.Color(0, 0, 0)); 
     jPanel1.setForeground(new java.awt.Color(255, 255, 255)); 
     jPanel1.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { 
      public void mouseDragged(java.awt.event.MouseEvent evt) { 
       jPanel1MouseDragged(evt); 
      } 
     }); 
     jPanel1.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mousePressed(java.awt.event.MouseEvent evt) { 
       jPanel1MousePressed(evt); 
      } 
     }); 

     jPanel2.setBackground(new java.awt.Color(0, 51, 51)); 
     jPanel2.setForeground(new java.awt.Color(153, 204, 255)); 

     lblHeaderText.setBackground(new java.awt.Color(0, 51, 51)); 
     lblHeaderText.setFont(new java.awt.Font("Arial Black", 1, 36)); // NOI18N 
     lblHeaderText.setForeground(new java.awt.Color(102, 102, 255)); 
     lblHeaderText.setText("SGMS - LOGIN"); 

     txtUsername.setBackground(new java.awt.Color(0, 0, 0)); 
     txtUsername.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N 
     txtUsername.setForeground(new java.awt.Color(255, 255, 255)); 
     txtUsername.setText("Username"); 
     txtUsername.setToolTipText(""); 
     txtUsername.setBorder(null); 
     txtUsername.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseEntered(java.awt.event.MouseEvent evt) { 
       txtUsernameMouseEntered(evt); 
      } 
      public void mouseExited(java.awt.event.MouseEvent evt) { 
       txtUsernameMouseExited(evt); 
      } 
     }); 

     txtPassword.setBackground(new java.awt.Color(0, 0, 0)); 
     txtPassword.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N 
     txtPassword.setForeground(new java.awt.Color(255, 255, 255)); 
     txtPassword.setText("Password"); 
     txtPassword.setBorder(null); 
     txtPassword.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseEntered(java.awt.event.MouseEvent evt) { 
       txtPasswordMouseEntered(evt); 
      } 
      public void mouseExited(java.awt.event.MouseEvent evt) { 
       txtPasswordMouseExited(evt); 
      } 
     }); 

     lblLoginTypeText.setFont(new java.awt.Font("Arial Black", 0, 18)); // NOI18N 
     lblLoginTypeText.setForeground(new java.awt.Color(102, 204, 255)); 
     lblLoginTypeText.setText("LOGIN TYPE"); 

     cbType.setBackground(new java.awt.Color(0, 51, 51)); 
     cbType.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "CHOOSE LOGIN TYPE", "Administrator", "Academic Staff", "Administrative Staff", "Student" })); 

     btnEnter.setIcon(new javax.swing.ImageIcon("C:\\Users\\sniper\\Documents\\NetBeansProjects\\SDMS\\enter.png")); // NOI18N 
     btnEnter.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); 
     btnEnter.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseClicked(java.awt.event.MouseEvent evt) { 
       btnEnterMouseClicked(evt); 
      } 
      public void mouseEntered(java.awt.event.MouseEvent evt) { 
       btnEnterMouseEntered(evt); 
      } 
      public void mouseExited(java.awt.event.MouseEvent evt) { 
       btnEnterMouseExited(evt); 
      } 
     }); 

     javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); 
     jPanel2.setLayout(jPanel2Layout); 
     jPanel2Layout.setHorizontalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addGap(66, 66, 66) 
       .addComponent(lblHeaderText) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addGap(25, 25, 25) 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) 
        .addComponent(txtUsername, javax.swing.GroupLayout.DEFAULT_SIZE, 389, Short.MAX_VALUE) 
        .addComponent(txtPassword)) 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addGroup(jPanel2Layout.createSequentialGroup() 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
         .addComponent(lblLoginTypeText) 
         .addGap(86, 86, 86)) 
        .addGroup(jPanel2Layout.createSequentialGroup() 
         .addGap(104, 104, 104) 
         .addComponent(cbType, javax.swing.GroupLayout.PREFERRED_SIZE, 241, javax.swing.GroupLayout.PREFERRED_SIZE) 
         .addContainerGap(26, Short.MAX_VALUE)))) 
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
       .addComponent(btnEnter) 
       .addGap(256, 256, 256)) 
     ); 
     jPanel2Layout.setVerticalGroup(
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel2Layout.createSequentialGroup() 
       .addGap(34, 34, 34) 
       .addComponent(lblHeaderText) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(lblLoginTypeText)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(txtPassword, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE) 
        .addComponent(cbType, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 87, Short.MAX_VALUE) 
       .addComponent(btnEnter, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addGap(19, 19, 19)) 
     ); 

     lblTopText.setBackground(new java.awt.Color(0, 0, 0)); 
     lblTopText.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N 
     lblTopText.setForeground(new java.awt.Color(255, 255, 255)); 
     lblTopText.setText("SGMS"); 

     lblIcon.setBackground(new java.awt.Color(51, 51, 255)); 
     lblIcon.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N 
     lblIcon.setForeground(new java.awt.Color(255, 255, 51)); 
     lblIcon.setIcon(new javax.swing.ImageIcon("C:\\Users\\sniper\\Documents\\NetBeansProjects\\SDMS\\logo.png")); // NOI18N 

     lblExit.setIcon(new javax.swing.ImageIcon("C:\\Users\\sniper\\Documents\\NetBeansProjects\\SDMS\\exit.png")); // NOI18N 
     lblExit.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR)); 
     lblExit.addMouseListener(new java.awt.event.MouseAdapter() { 
      public void mouseClicked(java.awt.event.MouseEvent evt) { 
       lblExitMouseClicked(evt); 
      } 
      public void mouseEntered(java.awt.event.MouseEvent evt) { 
       lblExitMouseEntered(evt); 
      } 
      public void mouseExited(java.awt.event.MouseEvent evt) { 
       lblExitMouseExited(evt); 
      } 
     }); 

     javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); 
     jPanel1.setLayout(jPanel1Layout); 
     jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addContainerGap() 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
        .addGroup(jPanel1Layout.createSequentialGroup() 
         .addComponent(lblIcon) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addComponent(lblTopText) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
         .addComponent(lblExit))) 
       .addContainerGap()) 
     ); 
     jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addGroup(jPanel1Layout.createSequentialGroup() 
       .addGap(6, 6, 6) 
       .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
        .addComponent(lblTopText) 
        .addComponent(lblIcon) 
        .addComponent(lblExit)) 
       .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
       .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) 
       .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) 
     ); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
     getContentPane().setLayout(layout); 
     layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     ); 
     layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) 
     ); 

     pack(); 
    }// </editor-fold>       

    private void lblExitMouseClicked(java.awt.event.MouseEvent evt) {          
     // EXIT BUTTON 
     System.exit(0); 
    }          

    private void lblExitMouseEntered(java.awt.event.MouseEvent evt) {          
     // MOUSEOVER ICON CHANGE 
     lblExit.setIcon(new ImageIcon("exit_hover.png")); 
    }          

    private void lblExitMouseExited(java.awt.event.MouseEvent evt) {          
     // MOUSE EXIT ICON CHANGE 
     lblExit.setIcon(new ImageIcon("exit.png")); 
    }         

    private void jPanel1MouseDragged(java.awt.event.MouseEvent evt) {          
     // FOR MOVEMENT OF JFRAME 
     int x = evt.getXOnScreen(); 
     int y = evt.getYOnScreen(); 

     this.setLocation(x - xMouse,y - yMouse);  
    }          

    private void jPanel1MousePressed(java.awt.event.MouseEvent evt) {          
     // Saving mouse to start from frames 0,0 position 
     xMouse = evt.getX(); 
     yMouse = evt.getY(); 
    }          

    private void txtUsernameMouseEntered(java.awt.event.MouseEvent evt) {           
     txtUsername.setBackground(Color.GRAY); 
    }           

    private void txtUsernameMouseExited(java.awt.event.MouseEvent evt) {           
     txtUsername.setBackground(Color.BLACK); 
    }          

    private void txtPasswordMouseEntered(java.awt.event.MouseEvent evt) {           
     txtPassword.setBackground(Color.GRAY); 
    }           

    private void txtPasswordMouseExited(java.awt.event.MouseEvent evt) {           
     txtPassword.setBackground(Color.BLACK); 
    }          

    private void btnEnterMouseEntered(java.awt.event.MouseEvent evt) {          
     // Setting Icon on hover 
     btnEnter.setIcon(new ImageIcon("enter_hover.png")); 
    }          

    private void btnEnterMouseExited(java.awt.event.MouseEvent evt) {          
     // Setting icon on hover off 
     btnEnter.setIcon(new ImageIcon("enter.png")); 
    }          

    private void btnEnterMouseClicked(java.awt.event.MouseEvent evt) {          
     // LOGIN CODE HERE 
     String sql = "select * from ROOT.ADMINLOGIN where username=? and password=?"; 
     try 
     { 
      PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql); 
      ps.setString(1, txtUsername.getText()); 
      ps.setString(2, txtPassword.getText()); 
      ResultSet rs = ps.executeQuery(); 

      if(rs.next()) 
      { 
       JOptionPane.showMessageDialog(this,"SUCCESSFULL"); 
      } 
      else 
      { 
       JOptionPane.showMessageDialog(this,"WRONG"); 
      } 
     } 
     catch (Exception e) 
     { 

     } 
    }          

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String args[]) { 
     /* Set the Nimbus look and feel */ 
     //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 
     /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */ 
     try { 
      for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
       if ("Nimbus".equals(info.getName())) { 
        javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
        break; 
       } 
      } 
     } catch (ClassNotFoundException ex) { 
      java.util.logging.Logger.getLogger(mainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (InstantiationException ex) { 
      java.util.logging.Logger.getLogger(mainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (IllegalAccessException ex) { 
      java.util.logging.Logger.getLogger(mainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
      java.util.logging.Logger.getLogger(mainFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
     } 
     //</editor-fold> 

     /* Create and display the form */ 
     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new mainFrame().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JLabel btnEnter; 
    private javax.swing.JComboBox<String> cbType; 
    private javax.swing.JPanel jPanel1; 
    private javax.swing.JPanel jPanel2; 
    private javax.swing.JLabel lblExit; 
    private javax.swing.JLabel lblHeaderText; 
    private javax.swing.JLabel lblIcon; 
    private javax.swing.JLabel lblLoginTypeText; 
    private javax.swing.JLabel lblTopText; 
    private javax.swing.JPasswordField txtPassword; 
    private javax.swing.JTextField txtUsername; 
    // End of variables declaration     
} 

CODE: DBConnection.java

import com.mysql.jdbc.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

/* 
* To change this license header, choose License Headers in Project Properties. 
* To change this template file, choose Tools | Templates 
* and open the template in the editor. 
*/ 

/** 
* 
* @author sniper 
*/ 
public class DBConnection { 
    private Connection DBConnection; 
    public Connection connect() 
    { 
      try 
      { 
       Class.forName("com.mysql.jdbc.Driver"); 
       System.out.println("CONNECTION DONE!"); 
      } 
      catch(ClassNotFoundException cnfe) 
      { 
       System.out.println("FAILED CONNECTION >> " + cnfe); 
      } 
      String url = "jdbc:derby://localhost:1527/JavaDB;create=true"; 
      try{ 
       DBConnection = (Connection) DriverManager.getConnection(url, "root", "toor"); 
       System.out.println("Database Connected"); 
      } 
      catch(SQLException se) 
      { 
       System.out.println("No Database >> " + se); 
      } 
      return DBConnection; 
    } 
} 

Tous suggestions sur comment pour le faire fonctionner à nouveau? Images incluses.

Image 1 Image 2

+0

devrait être présenté ici sous forme de texte formaté –

+0

fait. ajouté le code de ma forme et de la classe –

Répondre

2

Vous êtes connecté à Derby, et d'essayer de le jeter à un com.mysql.jdbc.Connection (qui fait partie du pilote MySQL, pas Derby), qui bien sûr ne va pas travailler. Remplacez le import com.mysql.jdbc.Connection, par import java.sql.Connection, il en va de même pour import com.mysql.jdbc.PreparedStatement, remplacez cela par import java.sql.PreparedStatement.

Vous ne devriez presque jamais avoir recours à une classe spécifique au pilote, mais essayez toujours d'utiliser les interfaces de l'API JDBC.

+0

Merci beaucoup :) –

-1

lien de connexion mysql: jdbc: mysql: // localhost: 3306/databansename

Code