2017-12-03 7 views
0

공급 업체 데이터베이스를 사용하여 스윙 응용 프로그램을 만들려고합니다. Howewer 아래의 SQL 쿼리는 어떤 이유로 든 null을 반환합니다. 이 쿼리는 VAT 번호가 데이터베이스에없는 경우 공급 업체 계정을 만들어야합니다. 이 오류의 원인은 무엇일까요?아래의 SQL 쿼리는 null을 반환합니다. - JAVA gui

내 코드 :

public void actionPerformed(ActionEvent e) { 
    try { 
     String vName = vendorField.getText(); 
     String adress = adressField.getText(); 
     String country = (String) countryField.getSelectedItem(); 
     String vat = vatField.getText(); 
     String pTerms = ptermsField.getText(); 
     String iban = ibanField.getText(); 
     String myDriver = "com.mysql.jdbc.Driver"; 
     String myUrl = "jdbc:mysql://localhost:3306/masterdata_db?autoReconnect=true&useSSL=false"; 

     Connection conn = DriverManager.getConnection(myUrl, "root", ""); 

     Statement st = conn.createStatement(); 
     ResultSet resultSet; 

     String check = "SELECT * FROM vendorcreation WHERE VAT = '"+vatField.getText()+"'";  
     resultSet = st.executeQuery(check); 

     boolean status = true; 

     if(resultSet.next()!=status){ 
      String sql1 = "INSERT INTO vendorcreation" 
        + "(VendorName, Adress, VAT, PaymentTerms, IBAN, Country) VALUES" 
        + "(?,?,?,?,?,?)"; 
      PreparedStatement pSt2=conn.prepareStatement(sql1); 
      pSt2.setString(1, vName); 
      pSt2.setString(2, adress);  
      pSt2.setString(3, vat); 
      pSt2.setString(4, pTerms);  
      pSt2.setString(5, iban); 
      pSt2.setString(6, country); 

      pSt2.executeUpdate(sql1); 
      JOptionPane.showMessageDialog(frame, "VENDOR ACCOUNT CREATED!"); 
     } else { 
      JOptionPane.showMessageDialog(frame, "VENDOR ALREADY EXISTS!", "Inane error",JOptionPane.ERROR_MESSAGE); 
     } 
    } catch (Exception e1) { 
     System.err.println("AN ERROR OCCURRED! PLEASE CONTACT YOUR SYSTEM ADMINISTRATOR."); 
     System.err.println(e1.getMessage()); 
    } 
} 
+0

이 * SQL 쿼리는 * 정확히 무슨 뜻 이죠 NULL, "LIKE"select 문에서하는? –

+0

콘솔에서 "NULL"값을 오류 메시지로받습니다. – BlockeeR

+0

쓸모없는 메시지를'e1.printStackTrace()'로 바꾸면 실제 문제가 무엇인지 알 수 있습니다. (뭔가를 인쇄하고 뭔가를 반환하는 것과는 큰 차이가 있습니다. 적절한 용어를 사용하고 준비된 명령문을 사용하여 연결 대신 매개 변수를 쿼리에 전달하십시오.) –

답변

-1

변경 "="반환 아래

String check = "SELECT * FROM vendorcreation WHERE VAT LIKE '"+vatField.getText()+"'"; 
+0

불행하게도 LIKE로 변경하면 같은 오류가 발생합니다. – BlockeeR