gpt4 book ai didi

java - 使用 Java 将数据从一种形式传输到另一种形式

转载 作者:行者123 更新时间:2023-11-30 01:01:34 24 4
gpt4 key购买 nike

有两种表单仅链接到数据库中的一个表。一种形式将数据插入表中,另一种形式检索数据。我通过一种形式编写了编码,但它不起作用。这是第一个表单 (fashion_and_footwear) 的代码片段:

    int dress1=100;
double price1=Double.parseDouble(Price1.getText());
DefaultTableModel CurrentPurchases= new DefaultTableModel();
int rows=CurrentPurchases.getRowCount();
if (rows>0){
for (int i = 0; i < rows; i++) {
CurrentPurchases.removeRow(0); }
}
try{
Connection connection=getConnection();
stmt=connection.createStatement();
String Buy1Query1="Update Products set Quantity=Quantity-1 where Product_no=1;";
String Buy1Query2="Insert into Buy values('"+Pname1.getText()+"',"+price1+");";
stmt.executeUpdate(Buy1Query1);
stmt.executeUpdate(Buy1Query2);
dress1--;
if(dress1==0){
JOptionPane.showMessageDialog(null,"Sorry, This Item is Out of Stock!");
}
new ShoppingCart().setVisible(true);
String Pname="";
double Price;
PreparedStatement buyquery=connection.prepareStatement("Select * from Buy;");
rs=buyquery.executeQuery();
if(rs.next()){
Pname=rs.getString("ProductName");
Price=rs.getDouble("Price");
CurrentPurchases.addRow(new Object[]{Pname,Price});
}
}
catch(SQLException ex){
ex.printStackTrace();
ex.getErrorCode();
}
finally{}

这是我创建的表:

create table Buy(ProductName varchar(100),Price decimal(7,2));

数据被插入到后端表中,但不会传输到其他表单(ShoppingCart)。我应该怎么办?注意:ShoppingCart 表单中已有一个名为 CurrentPurchases 的表格组件。

最佳答案

正如评论中所说,问题是插入后选择的数据不是最后插入的行。因此,有两种可能的解决方案。

第一个也是最好的一个是将自动增量列添加到 Buy 作为主键。您可以使用类似于以下的 SQL 语句:

ALTER TABLE Buy ADD COLUMN id integer primary key not null auto_increment;

然后,在插入此表后(您不需要更改 INSERT 语句),您必须获取最后生成的 key :

stmt.executeUpdate(Buy1Query2);
ResultSet rsKey = stmt.getGeneratedKeys();
rsKey.next();
int lastInsertId = rsKey.getInt(1);

然后,您必须将 SELECT 语句更改为: ReadyStatement buyquery=connection.prepareStatement("从 Buy 中选择 *,其中 id = "+lastInsertId);

就是这样。

另一个选择是,只要 Buy 表中的 productname 中不能出现重复的值,就使用以下 SELECT 语句:

    PreparedStatement buyquery=connection.prepareStatement(
"Select * from Buy where productname = '"+
Pname1.getText()+"'");

但我宁愿选择第一个选项。

关于java - 使用 Java 将数据从一种形式传输到另一种形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20083254/

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