gpt4 book ai didi

java - 如何将整数和 Varchar(20) 添加并在 mysql 中存储为 Varchar(20)

转载 作者:行者123 更新时间:2023-11-29 16:04:55 25 4
gpt4 key购买 nike

我有一个名为备件的数据库,其中所有值都存储为 varchar(20)。我通过 jtextfield 将用户输入作为数字,然后转换为整数。s1(即 itemcode)和 s2(即要添加到实际数量的数量)是输入现在我想将此输入添加到“quantity”(也是 varchar)中,如下所示:

public class AddStockDAO{
Connection connection;
PreparedStatement preparedStatement;
ResultSet resultSet;
Statement statement;

public AddStockDAO(String s1,String s2)
{
int num=Integer.parseInt(s2);
String sql= "select "+
" cast(quantity as INT) from spareparts"+
"set quantity+= "+num+
" cast(quantity as varchar(20))"+
"where itemcode='?'";
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "root", "")) {
try (PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, s1);

stmt.executeUpdate();
}
} catch (SQLException ex) {
Logger.getLogger(AddProductGUI.class.getName()).log(Level.SEVERE, null, ex);
}

}
}

最佳答案

如果我理解问题正确的话,你想根据itemcode更新数据库中的记录。因此,您只需将现有值转换为数字,添加附加值(使用 +)并将其转换回来。

int num = 0;
try {
num = Integer.parseInt(s2);
} catch (Exception e) {
System.out.println('Nope, that was not a number');
//Do something else?
}
String insertQuery = "UPDATE spareparts SET quantity = cast(cast(quantity as integer)+"+num+" as char(20)) where itemcode = "+s1+";";

try {
connection = DriverManager.getConnection(...); //add your data
preparedStatement = connection.prepareStatement(sql)
preparedStatement.executeUpdate();
} catch (Exception e) {
//Something broke
}

另外 - 您应该使用在类顶部定义的类变量,这样您就不必稍后重新创建连接。
但是,如果您添加更多 AddStockDAO,它们中的每一个都会创建新连接,因此我建议您创建一个数据库类,在其中设置连接,然后将一些数据或查询传递给要运行的方法它在现有连接上。

关于java - 如何将整数和 Varchar(20) 添加并在 mysql 中存储为 Varchar(20),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55835609/

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