簡體   English   中英

如何在 Java 中為 JDBC 編寫查詢而不是在 SQL 中編寫 6-9 個不同的查詢

[英]How to write a query instead of writing 6-9 different queries in SQL for JDBC in Java

為了執行不同的操作,我編寫了這 9 個查詢

GET_ITEMS = "SELECT ITEM_ID,PART_NO,DESCRIPTION,SALE_PRICE,UPDATED_BY,UPDATED_DATE FROM ITEM ORDER BY ITEM_ID";

GET_ITEM_ID = "從項目中選擇項目 ID";

GET_PART_NO = "從 ITEM_ID= 的項目中選擇 PART_NO?";

UPDATE_PART_NO = "更新項目集 PART_NO=?WHERE ITEM_ID=?";

GET_SALE_PRICE = "從 ITEM_ID = 的項目中選擇 SALE_PRICE?";

UPDATE_SALE_PRICE = "更新項目集 SALE_PRICE=?WHERE ITEM_ID=?";

GET_DESC = "從 ITEM_ID = 的項目中選擇描述?";

UPDATE_DESC = "更新項目集描述 =?WHERE ITEM_ID=?";

INSERT_INTO_ITEMDUPLICATE ="替換為 ITEM_DUPLICATE (item_id,part_no,sale_price,description,barcode)SELECT
i.ITEM_ID,i.PART_NO,i.SALE_PRICE,i.DESCRIPTION,b.BARCODE FROM item i JOIN item_barcode b ON b.ITEM_ID = i.ITEM_ID WHERE i.ITEM_ID =?";

在我的 java JDBC 程序中。 但我想把它們寫成兩個查詢,一個用於顯示來自數據庫的數據,另一個用於更新數據。 可能嗎???。 我正在 Eclipse 中嘗試這個,使用 mySQL 作為 DB。

任何人都可以幫忙解決這個問題嗎?我正在嘗試從 2 天內找到解決方案

這是我的控制台 output,最后如果用戶給出 Y,那么我的數據將更新到 item_duplicate 表中。 為此,我還更新了項目表。 但是我只需要在新表中而不是在項目表中執行更新。

控制台 output:

圖片

但我想把它們寫成兩個查詢,一個用於顯示來自數據庫的數據,另一個用於更新數據。 可能嗎???

第一個查詢將“顯示”來自 ITEM 的數據,所以這很好,是的,您可以編寫另一個更新數據的單個查詢(盡管它可能需要在 java 代碼中部分構建,具體取決於哪個字段(s ) 已經改變)

例如(編寫,未編譯):

string queryPrefix = "UPDATE ITEM SET ";
string querySuffix = " WHERE ITEM_ID=?";

List<String> queryUpdates = new ArrayList<String>;
List<object> queryParameters = new ArrayList<object>;

if (updatePartNumber) { 
  queryUpdates.add("PART_NO=?");
  queryParameters.add(newPartNumber);
}
if (updateSalePrice) { 
  queryUpdates.add("SALE_PRICE=?");
  queryParameters.add(newSalePrice);
}
// etc

string query = queryPrefix + String.join(",",queryUpdates) + querySuffix;
queryParameters.Add(itemId);

但是,您的最終查詢完全是另一回事,我看不出如何將其混合到上面的邏輯中。

暫無
暫無

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

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