SQL不更新数据

时间:2018-11-24 14:09:08

标签: java sql jdbc

我正在尝试更新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":

 }

2 个答案:

答案 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)

这里至少有两个问题:

  1. UPDATE语句不返回更新的行(如果这样做的话会很好...),因此您不能期望从更新语句中获得ResultSet。如果您一直使用executeUpdate()而不是executeQuery(),这会更容易发现。

  2. 与其形成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();
    }
    

    以上内容还确保正确关闭连接。