2013-04-04 5 views
1

Я хочу связать данные mysql с простым jtextfield. Таким образом, я написал код как:Ошибка драйвера JDBC для подключения mysql

public class SimpleForm extends JFrame implements ActionListener { 
    private static final long serialVersionUID = 1L; 
    Connection connection = null; 
    Statement s = null; 
    ResultSet rs; 
    String tableName = "mytable"; 
    JTextField jtf1, jtf2; 
    JButton jb; 
    String selTable; 
    public SimpleForm() { 
     initComponents(); 
     DoConnect(); 
    } 
    public void DoConnect() { 
     try { 
      connection = DriverManager.getConnection(
        "jdbc:mysql://localhost:3306/myschema", "root", "root"); 
      s = connection.createStatement(); 
      DatabaseMetaData dbm = connection.getMetaData(); 
      String[] types = { "TABLE" }; 
      rs = dbm.getTables(null, null, "%", types); 
      selTable = "SELECT * FROM " + tableName; 
     } catch (SQLException e) { 
      System.out.println("Oops! Error occured.."); 
      e.printStackTrace(); 
     } finally { 
      try { 
       s.close(); 
       connection.close(); 
      } catch (SQLException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
    private void initComponents() { 
     JPanel jp = new JPanel(new FlowLayout()); 
     JLabel jl1 = new JLabel("ID"); 
     jtf1 = new JTextField(); 
     jtf1.addActionListener(this); 
     JLabel jl2 = new JLabel("Name"); 
     jtf2 = new JTextField(); 
     jtf2.addActionListener(this); 
     jb = new JButton("Next"); 
     jb.addActionListener(this); 
     jp.add(jl1); 
     jp.add(jtf1); 
     jp.add(jl2); 
     jp.add(jtf2); 
     jp.add(jb); 
     add(jp); 
    } 
    public void actionPerformed(ActionEvent e) { 
     try { 
      s.execute(selTable); 
      rs = s.getResultSet(); 
      if ((rs != null) && (rs.next())) { 
       rs.next(); 
       jtf1.setText(rs.getString(1)); 
       jtf2.setText(rs.getString(2)); 
      } 
     } catch (SQLException e1) { 
      e1.printStackTrace(); 
     } 
    } 
    public static void main(String[] args) { 
     new SimpleForm().setVisible(true); 
    } 
    } 

Я делаю это в базе данных eclipse индиго и mysql. Я импортировал файл jar драйвера в папку lib. все еще я получил следующую ошибку.

Oops! Error occured.. 
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/myschema 
    at java.sql.DriverManager.getConnection(DriverManager.java:604) 
    at java.sql.DriverManager.getConnection(DriverManager.java:221) 
    at main.SimpleForm.DoConnect(SimpleForm.java:55) 
    at main.SimpleForm.<init>(SimpleForm.java:46) 
    at main.SimpleForm.main(SimpleForm.java:135) 
Exception in thread "main" java.lang.NullPointerException 
    at main.SimpleForm.DoConnect(SimpleForm.java:74) 
    at main.SimpleForm.<init>(SimpleForm.java:46) 
    at main.SimpleForm.main(SimpleForm.java:135) 

Так что, пожалуйста, помогите мне решить это. У меня действительно не проблема.

+0

Возможно, это: http://stackoverflow.com/questions/5556664/how-to-fix-no-suitable-driver-found-for-jdbcmysql-localhost-dbname-error-w или это: http://stackoverflow.com/questions/12590314/no-suitable-driver-found-for-jdbcmysql-localhost – DessDess

+1

Проверьте документы API: вам нужно указать DriverManager, который является драйвером. Попробуйте использовать DriverManager.getDrivers(), чтобы проверить, что вы загружаете. –

+1

вы должны установить путь к классам для mysql-connector.jar в eclipse, используя путь сборки, а также вы должны поместить mysql-коннектор в папку lib в WEB-INF Directory вашего веб-приложения (если вы разрабатываете любое веб-приложение) , – Hackerman

ответ

0

Вы должны попробовать это:

-вы должны установить путь к классам для MySQL-connector.jar в затмении, используя построить путь, а также вы должны поставить MySQL-разъем к Lib папку WEB-INF директории вашего web-app- (Если вы разрабатываете любое веб-приложение).

Надеюсь, это поможет.

Смежные вопросы