2014-10-26 55 views
0

我想用通常的CRUD方法建立一個簡單的webservice連接到數據庫。 到目前爲止,我設法通過URL列出我的表中的所有「客戶端」(接收JSON字符串),但我不能通過傳遞「id」參數來刪除或檢索行,我不知道爲什麼,因爲我不會收到任何錯誤。在Java中休息webservice - 從數據庫中刪除行

我的工作有5類:

  1. ClienteDAO
  2. Cliente
  3. 控制器
  4. 連接工廠
  5. ClienteResource

Cliente.java

具有SET,GET,hashCode和等方法的類變量。

ClienteResource.java

@GET 
@Path("/remove/{id}") 
@Produces("text/plain") 
public String removeId(@PathParam ("id") int id) { 
    return new Controller().removerCliente(id); 
} 

Controller.java

public String removerCliente (int id) { 
    return ClienteDAO.getInstance().removerCliente(id); 
} 

ClienteDAO.java

public class ClienteDAO extends ConnectionFactory { 

... 
    public String removerCliente (int id) { 

    Connection conexao = null; 
    PreparedStatement psmt = null; 
    ResultSet rs = null; 
    conexao = criarConexao(); 
    String query = "Delete * from cliente where id = ?"; 

    try { 
     psmt = conexao.prepareStatement(query); 
     psmt.setInt(1, id); 
     psmt.execute(); 

    } catch (Exception e) { 
    } //finally { 
     //fecharConexao(conexao, psmt, rs); 
    //} 

    return "O clientecom o id:"+ id +" foi apagado com sucesso!"; 
    } 
    } 
} 

Ç你發現錯了什麼?謝謝!

+1

那麼,你是否在你的調試器中逐步完成代碼? – OldProgrammer 2014-10-26 19:35:57

回答

1

不使用*在您的查詢:

String query = "Delete from cliente where id = ?"; 

SQL delete statement

+0

是的,工作!沒意識到! ;) 謝謝! – 2014-10-26 19:58:33

0

刪除* from cliente where id =? 確定此查詢是否正確?

+0

不,它不是! :) 謝謝! – 2014-10-26 20:01:04