簡體   English   中英

如何將Oracle數據庫中的值匯總到Java中?

[英]how to sum up values from oracle database into java?

我有一個連接到Oracle數據庫的Java應用程序。 我有一個表單,用戶在其中輸入一個名為COMMUNITY_ID的ID,一個名為START_DATE的開始日期和一個名為END_DATE的結束日期。

我希望應用程序在數據庫中的表中搜索輸入的值,並且當搜索結果正確時,我希望它顯示總值的總和。

我有三種方法; 每個方法負責搜索單個文本框。 例如,第一個方法total 1搜索COMMUNITY_ID ,第二個方法搜索START_DATE ,最后一個搜索END_DATE

我收到一條錯誤消息,說結果集為空或關閉。 我不知道為什么,因為我不太清楚這則訊息。

以下是我的代碼。 如果有人知道如何解決該問題,請幫助我。

public void total3()
{
    ResultSet result;
    System.out.println("total 3");

    String endDate = this.EndTxtBox.getText();

    try
    {
        rs=st.executeQuery("select RECIPT_ID,COMMUNITY_ID,VALUE,START_DATE,END_DATE, ITEM_BOUGHT,REASON from RECIPTS where  END_DATE = '" +endDate+"'");
        //display();
        this.EndTxtBox.setText(rs.getString("END_DATE"));
    }
    catch(Exception ex)
    {

        JOptionPane.showMessageDialog(null, "Searched Failed" + ex);
    }

    try
    {
        result =  rs=st.executeQuery("select SUM(VALUE)from RECIPTS where END_DATE = '" +endDate+"'" );
        //result =  rs=st.executeQuery("select RECIPT_ID,COMMUNITY_ID,VALUE,START_DATE,END_DATE, ITEM_BOUGHT,REASON,SUM(VALUE)from RECIPTS group by RECIPT_ID,COMMUNITY_ID,VALUE,START_DATE,END_DATE, ITEM_BOUGHT,REASON ");
    }
    catch(Exception ex)
    {
        JOptionPane.showMessageDialog(null, "Error" + ex);
    }
}

有什么想法嗎? 怎么了

您正在嘗試從結果集中讀取內容,然后再轉到第一行:

if (rs.next()) {
    endDate = rs.getString("END_DATE");
}

您的代碼充滿了不良做法:

  • 將UI代碼與數據庫訪問代碼混合
  • 捕捉異常
  • 當您只對其中一個感興趣時,選擇大量的行和列
  • 不使用准備好的語句
  • resultrs用於同一件事
  • 不關閉語句和結果集
  • 使用字符串變量存儲日期
  • 壓痕差且不一致

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM