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 *それが正確に何を意味するのには? –

+0

コンソールでは、エラーメッセージとして「NULL」という値が得られます。 – BlockeeR

+0

無駄なメッセージを 'e1.printStackTrace()'で置き換えれば、実際の問題点を知ることができます。 (何かを印刷して何かを返すことには大きな違いがあります。適切な用語を使用してください。また、準備文を使用して、連結の代わりにクエリにパラメータを渡してください)。 –

答えて

-1

変更 "=" "LIKE" select文、

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

LIKEに変更すると、同じエラーが発生することがあります。 – BlockeeR

関連する問題