2015-01-14 85 views
1

我已經創建了一個RESTful Web服務,女巫返回一個JSON,但在這個時候我只諮詢和顯示一個簡單的選擇*,我需要創建一個完整的CRUD解決方案,如果任何人有一些樣本分享,我會感激。完全RESTFUL WebService與GSON和Java

問候所有

我的代碼,直到現:

DAO - Access.java

package dao; 

import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import dto.Usuarios; 

public class Access 
{ 
    public ArrayList<Usuarios> getUsuarios(Connection con) throws SQLException 
    { 
     ArrayList<Usuarios> usuariosList = new ArrayList<Usuarios>(); 
     PreparedStatement stmt = con.prepareStatement("SELECT * FROM usuarios"); 
     ResultSet rs = stmt.executeQuery(); 
     try 
     { 
      while(rs.next()) 
      { 
       Usuarios usuariosObj = new Usuarios(); 
       usuariosObj.setUsr_id(rs.getInt("usr_id")); 
       usuariosObj.setUsr_login(rs.getString("usr_login")); 
       usuariosObj.setUsr_pwd(rs.getString("usr_pwd")); 
       usuariosList.add(usuariosObj); 

      } 
     } catch (SQLException e) 
     {  
      e.printStackTrace(); 
     } 
     return usuariosList; 

    } 
} 

DTO - Usuarios.java

package dto; 

public class Usuarios 
{ 
    private int usr_id; 
    private String usr_login; 
    private String usr_pwd; 

    public Usuarios() 
    { 

    } 

    public Usuarios(int usr_id, String usr_login, String usr_pwd) 
    { 
     super(); 
     this.usr_id = usr_id; 
     this.usr_login = usr_login; 
     this.usr_pwd = usr_pwd; 
    } 

    public int getUsr_id() 
    { 
     return usr_id; 
    } 

    public void setUsr_id(int usr_id) 
    { 
     this.usr_id = usr_id; 
    } 

    public String getUsr_login() 
    { 
     return usr_login; 
    } 

    public void setUsr_login(String usr_login) 
    { 
     this.usr_login = usr_login; 
    } 

    public String getUsr_pwd() 
    { 
     return usr_pwd; 
    } 

    public void setUsr_pwd(String usr_pwd) 
    { 
     this.usr_pwd = usr_pwd; 
    } 


    @Override 
    public String toString() 
    { 
     return "[ {usr_id=" + usr_id + ", usr_login=" + usr_login + ", usr_pwd=" + usr_pwd + "} ]"; 
    } 

} 

模式 - AccessManager.java

package model; 

import java.sql.Connection; 
import java.sql.SQLException; 
import java.util.ArrayList; 

import dao.Access; 
import dao.Database; 
import dto.Usuarios; 

public class AccessManager 
{ 
    public ArrayList<Usuarios> getUsuarios() throws Exception 
    { 
     ArrayList<Usuarios> usuariosList = new ArrayList<Usuarios>(); 
     Database db = new Database(); 
     Connection con = db.getConnection(); 
     Access access = new Access(); 
     usuariosList = access.getUsuarios(con); 
     return usuariosList; 
    } 
} 

WebService的 - UsuariosService.java

package webService; 

import java.util.ArrayList; 

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 

import com.google.gson.Gson; 

import model.AccessManager; 
import dto.Usuarios; 

@Path("/UsuariosService") 
public class UsuariosService 
{ 
    @GET 
    @Path("/usuarios") 
    @Produces("application/json") 
    public String usuarios() 
    { 
     String usuarios = null; 
     ArrayList<Usuarios> usuariosList = new ArrayList<Usuarios>(); 
     try 
     { 
      usuariosList = new AccessManager().getUsuarios(); 
      Gson gson = new Gson(); 
      //usuarios = gson.toJson(usuariosList); 
      usuarios = "{\"usuarios\" :" + gson.toJson(usuariosList) + "}"; 
     } catch (Exception e) 
     { 
       e.printStackTrace(); 
     } 
     return usuarios; 
    } 
} 

回答

2

通常你應該問你有特別的麻煩,而不是索取樣品。看起來你有一個結構化的代碼,你需要的只是實現所有的操作公開爲一項服務。

萬一你需要一個樣本,網絡上有相當多的資源。事情是這樣的:https://code.google.com/p/javaee6-crud-example/

我會嘗試下面給你一些快速提示:

WebService的 - UsuariosService.java

@POST 
@Path("/usuarios") 
public Response save(Usuario user) { 
    try { 
     manager= new AccessManager(); 
     manager.save(user); 
     return Response.ok("User has been created.").build(); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return usuarios; 
} 

@DELETE 
@Path("/usuarios/{id}") 
public Response delete(@PathParam("id") String id) { 
    try { 
     manager= new AccessManager(); 
     manager.delete(id); 
     return Response.ok("User has been deleted.").build(); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return usuarios; 
} 

@PUT 
@Path("/usuarios/{id}") 
public Response delete(@PathParam("id") String id, Usuario user) { 
    try { 
     manager= new AccessManager(); 
     manager.update(id, user); 
     return Response.ok("User has been updated.").build(); 
    } catch (Exception e) { 
      e.printStackTrace(); 
    } 
    return usuarios; 
} 

如果您鴕鳥政策瞭解PUT的使用,DELETE ,POST等,我建議您閱讀HTTP Method Tutorial。有幾個關於此的討論,但你可能會跳過一段時間。

我想你可能會從這裏得到想法。你的DAO需要實現方法來執行CRUD界面。我添加的鏈接有一個非常簡單的示例,可以幫助你。您也可以檢查JPA

不知道上面的信息是否有幫助,但我認爲這是一個開始,因爲您必須編碼才能瞭解您實際上在做什麼:)