我有這種包含三個文本字段和兩個單選按鈕的表單。該表格應該爲客戶計算帳單金額。我寫了下面的代碼,它顯示了一個NullPointerException錯誤。SQL代碼的NullPointerException錯誤
int noproduct;
double totalprice, price, shipcharge;
try{
Connection connection=getConnection();
stmt=connection.createStatement();
ResultSet rs1=stmt.executeQuery("Select count(ProductName) from buy;");
ResultSet rs2=stmt.executeQuery("Select sum(price) as TPrice from buy;");
noproduct=rs1.getInt("count(ProductName)");
NoProducts.setText(""+noproduct);
price=rs2.getDouble("TPrice");
shipcharge=3 * noproduct;
ShipCharges.setText(""+shipcharge);
totalprice=price+shipcharge;
TotalPrice.setText(""+totalprice);
if(CashRB.isSelected()){
totalprice=totalprice+(5*noproduct);
JOptionPane.showMessageDialog(null,"You have paid the bill by Cash!");
}
else if(CCardRB.isSelected()){
totalprice=totalprice-(5*noproduct);
JOptionPane.showMessageDialog(null,"You have paid the bill using Credit Card!");
}
}
catch(Exception ex){
System.out.println(ex.toString());
ex.printStackTrace();
}
finally{}
這條線在具體示出了錯誤:
noproduct=rs1.getInt("count(ProductName)");
我需要交替代碼,以顯示相同的結果,因爲這。
,以及它顯示了這些錯誤,我真的不明白他們是什麼:
java.lang.NullPointerException
at com.mysql.jdbc.ResultSetImpl.buildIndexMapping(ResultSetImpl.java:709)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1069)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2734)
誰能幫助我嗎?先謝謝你。
錯誤..你考慮重構代碼,並分解成更小的部分? – svz
@svz:這是MySQL JDBC驅動程序代碼,而不是OP的代碼。 –
@LuluLala:另一條語句爲總和分配一個別名。你爲什麼不在第一個語句中做同樣的事情,併爲計數分配一個別名? –