我正在尝试更新JavaFX中表中的数据。由于某种原因,它将无法正常工作。任何人都知道以下代码中可能有什么问题吗?
<?php
require_once __DIR__."/../dto/RoomTypeDTO.php";
require_once __DIR__."/../business/impl/RoomTypeBOimpl.php";
echo "Here in service"; //doesn't execute
$roomTypeBo=new RoomTypeBOimpl();
$method=$_SERVER['REQUEST_METHOD'];
switch ($method){
case "POST":
$operation=$_POST["operation"];
switch ($operation){
case "getAll":
echo json_encode($roomTypeBo->getAllRoomTypes());
break;
}
break;
case "GET":
}
答案 0 :(得分:0)
您在将逗号放在关闭位置之前的查询语句中犯了错误。只需删除该逗号
ResultSet rs = conn.createStatement().executeQuery(
"UPDATE "+SupermarketDB+" SET ProductName=" + ProductName1.getText() + ", Barcode=" + Barcode1.getText() + ", Category=" + Category1.getText() + ", SubCategory=" + SubCategory1.getText() + ", TotalStock=" + TotalStock1.getText() + " Where ID=" + ID2.getText() + "");
粘贴此代码
答案 1 :(得分:0)
这里至少有两个问题:
UPDATE
语句不返回更新的行(如果这样做的话会很好...),因此您不能期望从更新语句中获得ResultSet
。如果您一直使用executeUpdate()
而不是executeQuery()
,这会更容易发现。
与其形成SQL字符串时不引用参数,不如使用PreparedStatement
。即,使用类似的内容:
String sql = "UPDATE " + SupermarketDB + " SET ProductName=?, Barcode=?, Category=?, SubCategory=?, TotalStock=? Where ID=?");
try(Connection conn = SqliteConnection.Connector();
PreparedStatement stmt = conn.prepareStatement(sql)) {
int i = 0;
stmt.setString(++i, ProductName1.getText());
..
stmt.setString(++i, ID2.getText());
stmt.executeUpdate();
}
以上内容还确保正确关闭连接。