繁体   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