gpt4 book ai didi

java - 单个 Try Catch block 中的多个 JDBC 语句。这是好的做法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:21 24 4
gpt4 key购买 nike

我是 Java 的新手,我的工作都与 JDBC 有关——关于插入和处理数据。总的来说它工作正常。

为了减少代码,我使用单个 try{} catch() block 来编写多个 JDBC StatementsPrepared 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
}
}

那么这是处理的好方法还是其他方法?

截至目前,我的代码运行良好,这种方法是否会在未来出现任何问题。

最佳答案

这违反了 Single ResponsbilitySingle Layer of Abstraction原则。

所以尽管这段代码在技术上是有效的;您不仅应该关注它的正确性,还应该关注它的可读性。和可测试性。而且我认为在您显示的输入中,两者都不是“很棒”。

因此;来自干净的代码(质量)的角度;我宁愿建议按照以下方式去做:

outer method ...
try {
helperMethod1();
helperMethod2();
} catch( ...

对于您到达那里的每个不同案例,都有一个小 helper 。当然,您不会就此止步;但尝试隔离这些助手的共同方面;并可能找到与单个更通用的助手一起使用的方法。

当然:如果可能,您会尽量避免捕获 Exception。相反,您可能会捕获最具体的异常!

关于java - 单个 Try Catch block 中的多个 JDBC 语句。这是好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43603177/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com