2016-08-21 3 views
-2

Я использовал его внутри базы данных, сделанной с помощью кнопки, даже подключил базу данных, но информация не входит в таблицу базы данных.Невозможно вставить данные в базу данных mysql с помощью JDBC в Netbeans

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    PreparedStatement ps = null; 
    try { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection conn = DriverManager.getConnection("jdbc:mysql://localhoast:3306//a","root","root"); 
     Statement smt = conn.createStatement(); 
     ps = conn.prepareStatement("insert into aone values (?,?,?)"); 

     String n = name.getText(); 
     String a = age.getText(); 
     String r = roll.getText(); 

     ps.setString(1,n); 
     ps.setString(2,a); 
     ps.setString(3,r); 

     int i = ps.executeUpdate(); 

     if (i>0) { 
      JOptionPane.showMessageDialog(null, "data is saved"); 
     } 
     else { 
      JOptionPane.showMessageDialog(null, "error"); 
     }   
    } 

    catch(Exception e) { 

    } 
}        
+0

Как вы определяете, что это не в БД. Будьте более конкретными и задавайте конкретные вопросы. –

ответ

1

Распечатать трассировку стека в блоке catch. JVM может вызывать исключение, но вы никогда не узнаете этого.

Когда вы это сделаете, я уверен, вам скажут, что JDBC не смог подключиться к «localhoast».

Я сомневаюсь, что «localhoast» правильный; попробуйте «localhost».

Есть так много вещей неправильно с этим кодом:

  1. не должен смешиваться пользовательским интерфейсом и кодами базы данных.
  2. Не следует подключать JDBC с каждым запросом; используйте бассейн.
  3. Код не является многоуровневым; трудно проверить.
  4. Вы не закрываете ресурсы JDBC в области метода.

Попробуйте так:

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) { 
     Connection conn = null; 
     PreparedStatement ps = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection conn =   DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","root"); 
      ps = conn.prepareStatement("insert into aone values (?,?,?)"); 

      String n = name.getText(); 
      String a = age.getText(); 
      String r = roll.getText(); 

      ps.setString(1,n); 
      ps.setString(2,a); 
      ps.setString(3,r); 

      int i = ps.executeUpdate(); 

      if (i > 0) { 
       JOptionPane.showMessageDialog(null, "data is saved"); 
      } else { 
       JOptionPane.showMessageDialog(null, "error"); 
      }   
     } catch(Exception e) { 
      e.printStackTrace(); 
     } finally { 
      close(ps); // You need to implement this 
      close(conn); // You need to implement this 
     } 
    } 
+0

В довершение ко всему, имя базы данных 'a' находится за двумя косыми чертами'/', которые не будут работать - строка подключения неверна! –

+0

Косые черты, которые я вижу, верны. Были ли они отредактированы? – duffymo

+0

Извините, я имел в виду в вопросе OP! –