我是Java新手,我的工作都與JDBC相關 - 關於插入和處理數據。在其所有工作正常。單嘗試捕獲塊中的多個JDBC語句。這是好的做法嗎?
要減少代碼使用單個try{} catch()
塊來編寫多個JDBC
Statements
和Prepared Statements
。
示例代碼:
public void dashboardReports()
{
try {
String total_stock_value="select sum(price*closingstock)as tsv from purchase_table";
Statement ps_tsv=connection.createStatement();
ResultSet set_tsv=ps_tsv.executeQuery(total_stock_value);
if(set_tsv.next())
{
total_stock.setText(set_tsv.getString("tsv"));
}
String tota_sales="select sum(INVOICE_VALUE) as iv from PARTYWISE_ACCOUNTS_LEDGER";
Statement st_total_sales=connection.createStatement();
ResultSet set_total_sales=st_total_sales.executeQuery(tota_sales);
if(set_total_sales.next())
{
total_sales.setText(set_total_sales.getString("iv"));
}
String total_purchases="select sum(CP_INVOICEVALUE)as cpi from COMPANY_PAYMENTS";
Statement st_tps=connection.createStatement();
ResultSet set_tps=st_tps.executeQuery(total_purchases);
if(set_tps.next())
{
total_purchases_label.setText(set_tps.getString("cpi"));
}
String total_collectionss="select sum(PAYMENT_REC) as payrec from PARTYWISE_ACCOUNTS_LEDGER";
Statement ps_toco=connection.createStatement();
ResultSet set_toco=ps_toco.executeQuery(total_collectionss);
if(set_toco.next())
{
total_collections.setText(set_toco.getString("payrec"));
}
String total_payments="select sum(CP_PAYMENTREC) as paid from COMPANY_PAYMENTS";
Statement ps_topa=connection.createStatement();
ResultSet set_topa=ps_topa.executeQuery(total_payments);
if(set_topa.next())
{
total_payments_label.setText(set_topa.getString("paid"));
}
} catch (Exception e) {
// TODO: handle except
}
}
因此,這是很好的應對或其他別的辦法?
截至目前我的代碼工作得很好,我們是否有任何未來的問題與這種方法。
如果這個代碼工作正常,你應該提交我們的[代碼審查(HTTPS:/ /codereview.stackexchange.com/)姊妹網站。 –
我看到的最大的問題是,如果您不使用試用資源來解決問題,並且您會自動使用較小範圍的嘗試塊,則不會關閉資源。順便說一下:你的代碼效率低下:當你查詢這兩個表時,你只查詢兩次表,只能查詢一次。 –