我想在 INSERT 查询中使用 SELECT 子查询作为 PreparedStatement...我试图用自定义值填充 2 列,用子查询填充第三列...
query = "insert into invoiceOrders (productCode,quantity,amount) values (?,?,select price from priceTable where proCode=pCode)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(0,"productCode");
stmt.setString(1,"qty");
/*3rd column will be filled be subquery*/
n = stmt.executeUpdate();
子查询:
select price from priceTable where proCode=pCode
必须用括号括起来,并确保它只返回 1 行。
还有参数是pCode
什么?
我认为你应该用 替换它,?
然后用setString()
.
该setString()
方法的第一个参数也是基于 1 的。
所以改成这样:
query = "insert into invoiceOrders (productCode,quantity,amount) values (?,?,(select price from priceTable where proCode=?))";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1,"productCode");
stmt.setString(2,"qty");
stmt.setString(3,pCode); // or stmt.setInt(3,pCode);
n = stmt.executeUpdate();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句