亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查數據庫中的現有條目 + 自動增量 ID ->多個條件

檢查數據庫中的現有條目 + 自動增量 ID ->多個條件

絕地無雙 2022-09-14 16:26:05
我正在創建一個GUI應用程序,其中包含一個用戶表單來生成工作表,這些工作表保存在H2數據庫中,對于用戶表單,我手動輸入文本字段中的工作表編號和日期選擇器中的日期。每張紙都有其ID,該ID在該月是唯一的。為該月創建的第一個工作表的 ID 為 1,第 2 個為 2,依此類推,但對于下個月,ID 應從 1 重新啟動。我需要檢查該條目是否已存在于該月具有該工作表編號的數據庫中。我在數據庫中創建了另一列,其中存儲了我從文本字段中提取的數字+月+年,并在那里進行了檢查,但我正在尋找另一種方法,而不必創建額外的列。以下是設置器和獲取器(我只粘貼了 3 個值):public class FiseDetails {    private final IntegerProperty sheetNumber;    private final ObjectProperty<Date> sheetDate;    private final StringProperty numberAndDate;public FiseDetails(Integer sheetNumber, Date sheetDate, String numberAndDate) {        this.sheetNumber = new SimpleIntegerProperty(sheetNumber);        this.sheetDate = new SimpleObjectProperty<>(sheetDate);        this.numberAndDate = new SimpleStringProperty(numberAndDate);}    public Integer getSheetNumber() {        return sheetNumber.get();    }    public void setSheetNumber(Integer value) {        sheetNumber.set(value);    }    public IntegerProperty SheetNumberProperty() {        return sheetNumber;    }    public Date getSheetDate() {        return sheetDate.get();    }    public void setSheetDate(Date value) {        sheetDate.set(value);    }    public ObjectProperty SheetDateProperty() {        return sheetDate;    }    public String getNumberAndDate() {        return numberAndDate.get();    }    public void setNumberAndDate(String value) {        numberAndDate.set(value);    }    public StringProperty NumberAndDateProperty() {        return numberAndDate;    }}我的問題是,如何有效地檢查該月的數據庫中是否已存在工作表編號,而無需創建額外的列。如果您認為實際的解決方案是最好的,請告訴我,因為額外的列是唯一唯一的列,因此當我需要從數據庫中刪除行時,我也使用該列。另外,我想不出一個解決方案來自動遞增工作表編號并將其設置為文本字段,例如檢查當前月份的最后一個工作表編號并將其設置為“txt_SheetNumber”文本字段,如果沒有將其設置為1,那么每當我初始化應用程序時,文本字段中已有工作表編號。如果你能幫助我,那將不勝感激。這是我第一次使用Java或任何其他編程語言,所以請隨時對任何方面發表評論。該應用程序對我來說只是為了讓我的工作更輕松。
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

經過一番挖掘,我找到了第二個問題的解決方案。讓我知道我是否會改進它。


int lastId() {


    int newSheetNumber=0;

    String query = "SELECT MAX(ID) FROM SHEETSDB WHERE MONTH(`SHEETDATE`)=MONTH(NOW()) AND YEAR(`SHEETDATE`)=YEAR(NOW())";

    try {

        preparedStatement = conn.prepareStatement(query);


        rs = preparedStatement.executeQuery();

        if (!rs.next()) {

            newSheetNumber = 1;

        }else {

            newSheetNumber = rs.getInt(1) + 1;

        }

        preparedStatement.close();

        rs.close();

        //System.out.println("The new sheet is: " + newSheetNumber);

    } catch (SQLException ex) {

        System.err.println("Error " + ex);

    }

    return newSheetNumber;

}


查看完整回答
反對 回復 2022-09-14
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號