2016-11-02 11 views
-2

このタイトルのスタック交換検索の最初のページにあるすべてのリンクを検索しましたが、実際には機能しませんでした。コネクタはクラスパスに追加され、このコードは学校のコンピュータで動作します。これはjFrameのjButtonのコーディングです。java.sql.SQLException:jdbcの適切なドライバが見つかりません:mysql:// localhost/dbname

DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); 
    try { 
     Class.forName("java.sql.Driver"); 
     Connection con = DriverManager.getConnection("jdbc:mysql://localhost/game", "root", "password"); 
     Statement stmt = con.createStatement(); 
     String sfld = (String) jComboBox1.getSelectedItem(); 
     String op = (String) jComboBox2.getSelectedItem(); 
     String crit = jTextField1.getText(); 
     String query; 
     if (sfld.equals("contactNo")) { 
      query = "select * from user where " + sfld + " " + op + " " + crit + ";"; 
     } else { 
      query = "select * from user where " + sfld + " " + op + " \"" + crit + "\";"; 
     } 
     ResultSet rs = stmt.executeQuery(query); 
     int count = 0; 
     while (rs.next()) { 
      count++; 
      model.addRow(new Object[]{ 
       rs.getString(1), rs.getString(2), rs.getString(3), 
       rs.getString(4), rs.getString(5) 
      }); 
     } 
     rs.close(); 
     stmt.close(); 
     con.close(); 
     jTable1.setModel(model); 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
     System.out.println(e); 
     e.printStackTrace(); 
    } 

いつか戻ってきましたが、試行するたびに同じメッセージが表示されています。その後、私は数回、mysqlを再インストールし、Linux Mint 18 KDEにOSを変更しましたが、まだsmaeエラーが私を悩ましています。 Intel i3 64ビットプロセッサを使用しています(これが役立つ場合)。 すべてのお役に立ちました!

EDIT1:

完全なスタックトレース

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/game 
at java.sql.DriverManager.getConnection(DriverManager.java:689) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at SearchFrame.jButton1ActionPerformed(SearchFrame.java:127) 
at SearchFrame.access$000(SearchFrame.java:15) 
at SearchFrame$2.actionPerformed(SearchFrame.java:71) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6533) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
at java.awt.Component.processEvent(Component.java:6298) 
at java.awt.Container.processEvent(Container.java:2236) 
at java.awt.Component.dispatchEventImpl(Component.java:4889) 
at java.awt.Container.dispatchEventImpl(Container.java:2294) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 
at java.awt.Container.dispatchEventImpl(Container.java:2280) 
at java.awt.Window.dispatchEventImpl(Window.java:2746) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
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:76) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 
at java.awt.EventQueue$4.run(EventQueue.java:731) 
at java.awt.EventQueue$4.run(EventQueue.java:729) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
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) 

EDIT2:私ははcom.mysql.jdbc.Driver

にドライバを変更する場合

これはスタックトレースであります

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:264) 
at SearchFrame.jButton1ActionPerformed(SearchFrame.java:126) 
at SearchFrame.access$000(SearchFrame.java:15) 
at SearchFrame$2.actionPerformed(SearchFrame.java:71) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) 
at java.awt.Component.processMouseEvent(Component.java:6533) 
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) 
at java.awt.Component.processEvent(Component.java:6298) 
at java.awt.Container.processEvent(Container.java:2236) 
at java.awt.Component.dispatchEventImpl(Component.java:4889) 
at java.awt.Container.dispatchEventImpl(Container.java:2294) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) 
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) 
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) 
at java.awt.Container.dispatchEventImpl(Container.java:2280) 
at java.awt.Window.dispatchEventImpl(Window.java:2746) 
at java.awt.Component.dispatchEvent(Component.java:4711) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) 
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:76) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) 
at java.awt.EventQueue$4.run(EventQueue.java:731) 
at java.awt.EventQueue$4.run(EventQueue.java:729) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 
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) 
+0

私たちにSSCCEを見せてください。完全なスタックトレースを表示します。また、あなたのコードはSQLインジェクションに対して脆弱です。 – m0skit0

+0

クラスパスにドライバを含めましたか? –

+0

@ m0skit0これは私の学校のプロジェクトですが、もちろんSQLインジェクションに脆弱です! (私は学校でそれを説明しようとしましたが、誰も気にしません!)。私はクラスパスにドライバを含めました(先に述べたように)。 – Roofi

答えて

0

MySQLドライバはです。(source

注:あなたのコードはSQLインジェクションに対して脆弱です。 Use parameters and prepared statementsを連結するのではなく、

+0

実際に私はSQLインジェクション(それは私の先生がそれを理解していないと私は印をつけません)ので、それを保護するはずではないが、まだ私はjavaでそれを行う方法が好奇心です。もしあなたが私にリンクを与えることができたら、私はそれを感謝します。 – Roofi

+0

ありがとうございます@ m0skit0、それは私が問題の深い理解を開発するのに役立ちました。 – Roofi

関連する問題