gpt4 book ai didi

java - mysql for java中的语句

转载 作者:行者123 更新时间:2023-11-29 08:47:51 24 4
gpt4 key购买 nike

我猜错误出在sentenciaSQL中,但我不知道如何修复它=

public long guardar(PedidoDTO obj) throws SQLException {

PedidoDTO dto = new PedidoDTO();
String url="jdbc:mysql://127.0.0.1:3306/capacitacion?user=capacitacion&password=password";

try {
Connection con = DriverManager.getConnection(url);
String sentenciaSQL = "INSERT INTO capacitacion.pedido (id, fecha, total, folio) VALUES(NULL,'" + obj.getId() + "," + obj.getFecha() + ","+ obj.getTotal() + "," + obj.getFolio() + "')";
PreparedStatement s = con.prepareStatement(sentenciaSQL);
s.executeUpdate();
for(PedidoDetalleDTO detalle:obj.getPedidoDetalle()){
dto.getId();
dto.getFecha();
dto.getTotal();
dto.getFolio();
}con.close();
} catch (SQLException e) {
System.out.println(e);
}
return dto.getId();
}

最佳答案

对于PreparedStatement来说这不是一个好的用法,它应该是这样的:

String sentenciaSQL = "INSERT INTO capacitacion.pedido (id, fecha, total, folio) VALUES(?, ?, ?, ?)";
PreparedStatement s = con.prepareStatement(sentenciaSQL);
s.setInt(1, obj.getId());
s.setDate(2, obj.getFecha());
s.setDouble(3, obj.getTotal());
s.setString(4, obj.getFolio());

顺便说一句,你为什么使用这个 block 代码:

for(PedidoDetalleDTO detalle:obj.getPedidoDetalle()){
dto.getId();
dto.getFecha();
dto.getTotal();
dto.getFolio();
}

您似乎想使用相同的方法在表中添加订单详细信息 (detalles de la orden/pedido),但不会以这种方式工作。如果您发布您的功能需求来帮助您解决实际问题,那就太好了。

关于java - mysql for java中的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099323/

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