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());
}
}
で*を返す以下のSQLクエリをnull *それが正確に何を意味するのには? –
コンソールでは、エラーメッセージとして「NULL」という値が得られます。 – BlockeeR
無駄なメッセージを 'e1.printStackTrace()'で置き換えれば、実際の問題点を知ることができます。 (何かを印刷して何かを返すことには大きな違いがあります。適切な用語を使用してください。また、準備文を使用して、連結の代わりにクエリにパラメータを渡してください)。 –