2016-03-15 5 views
1

Я хочу, чтобы проверить, если мой идентификатор уже существует или нет:как проверить, если идентификатор в MySQL уже существует с Java

sql2 = "SELECT stid FROM student"; 
stmt.executeUpdate(sql2); 
rs = stmt.executeQuery(sql2); 
    while(rs.next()){ 
     id = rs.getString("stid"); 
     if(tf_insert1.equals(id)){ 
     JOptionPane.showMessageDialog(null, "ID is already exists"); 
     id = tf_insert1.getText(); 
     name = tf_insert2.getText(); 
     address = tf_insert3.getText(); 
     gender = tf_insert4.getText(); 
     ip = tf_insert5.getText(); 
     tf_insert1.setText(id); 
     tf_insert2.setText(name); 
     tf_insert3.setText(address); 
     tf_insert4.setText(gender); 
     tf_insert5.setText(ip); 

Любая идея, чтобы решить эту вещь ???

+1

'stmt.executeUpdate (SQL2)', 'почему executeUpdate()' с запросом на выборку – Ramanlfc

+3

вы должны узнать о [ГДЕ] (https://en.wikipedia.org/wiki/Where_%28SQL % 29). Ваша версия едет в продуктовый магазин, скупая ВСЕ в магазине, за рулем всего дома, а затем через каждый пункт по одному, пока вы не найдете тот моноблок, который вы действительно хотели все это время. –

+0

@kira katou также, если это уникальный столбец, вам не нужен цикл –

ответ

0

Пожалуйста, проверьте это. Я изменил код на 2 части.

  1. Один для checking the id exists or not
  2. , а другой для insert section.

Надеюсь, что это поможет решить вашу проблему.

private void yourFunction(java.awt.event.FocusEvent evt) { 
DBUtil util = new DBUtil(); 

try { 
    Connection con = util.getConnection(); 
    PreparedStatement stmt = con.prepareStatement(
     "SELECT stid FROM student where stid = ?"); 
    stmt.setLong(1, Long.parseLong(stid.getText()));  
    ResultSet rs=stmt.executeQuery(); 
    bool recordAdded = false; 
    while(!rs.next()){    
     recordAdded = true; 
    } 
    if(recordAdded){ 
     // your code for insertion. 
    }else{ 
     JOptionPane.showMessageDialog(null, "ID is already exists"); 
    } 
} catch (Exception ex) { 
    Logger.getLogger(DATAENTRY.class.getName()).log(Level.SEVERE, null, ex); 
} 
+0

ошибка на DBUtil и Logger dude –

+0

@KiraKatou Пожалуйста, добавьте журнал ошибок, чтобы я мог найти ваша проблема. – SkyWalker