Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GSON和Java的完整RESTFUL Web服务_Java_Json_Web Services_Rest_Sapui5 - Fatal编程技术网

使用GSON和Java的完整RESTFUL Web服务

使用GSON和Java的完整RESTFUL Web服务,java,json,web-services,rest,sapui5,Java,Json,Web Services,Rest,Sapui5,我已经创建了一个RESTFUL Web服务,witch返回了一个json,但现在我只参考并显示了一个简单的select*,我需要创建一个完整的CRUD解决方案,如果有人有一些示例要共享,我将不胜感激 向所有人问好 到目前为止,我的代码是: DAO-Access.java package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav

我已经创建了一个RESTFUL Web服务,witch返回了一个json,但现在我只参考并显示了一个简单的select*,我需要创建一个完整的CRUD解决方案,如果有人有一些示例要共享,我将不胜感激

向所有人问好

到目前为止,我的代码是:

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;

    }
}
模型-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;
    }
}
包模型;
导入java.sql.Connection;
导入java.sql.SQLException;
导入java.util.ArrayList;
导入dao.Access;
导入dao数据库;
向美国进口数据;
公共类访问管理器
{
public ArrayList getUsuarios()引发异常
{
ArrayList usuariosList=新的ArrayList();
数据库db=新数据库();
Connection con=db.getConnection();
访问权限=新访问权限();
usuariosList=access.getUsuarios(con);
归还高利贷者;
}
}
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;
    }
}
@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;
}
packagewebservice;
导入java.util.ArrayList;
导入javax.ws.rs.GET;
导入javax.ws.rs.Path;
导入javax.ws.rs.products;
导入com.google.gson.gson;
导入model.AccessManager;
向美国进口数据;
@路径(“/usuariservice”)
公共类常用服务
{
@得到
@路径(“/usuarios”)
@生成(“应用程序/json”)
公共字符串usarios()
{
字符串usuarios=null;
ArrayList usuariosList=新的ArrayList();
尝试
{
usuariosList=new AccessManager().getUsuarios();
Gson Gson=新的Gson();
//usuarios=gson.toJson(usuariosList);
usuarios=“{\“usuarios\”:“+gson.toJson(usuariosList)+“}”;
}捕获(例外e)
{
e、 printStackTrace();
}
返还利息;
}
}

通常,您应该询问您遇到的具体问题,而不是询问样品。看起来您有一个结构化代码,您所需要的只是实现所有作为服务公开的操作

如果您需要一个示例,web上有相当多的资源。大概是这样的:

我将尝试在下面给你一些快速提示:

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;
    }
}
@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等的用法,我建议你阅读。关于这一点有几个讨论,但您可能会跳过它一段时间

我想你可以从这里得到一个想法。您还需要实现执行CRUD接口的方法。我添加的链接有一个非常简单的示例,可能也会有所帮助。您也可以检查此链接

不确定上述信息是否有帮助,但我认为这是一个开始,因为您必须对其进行编码才能了解更多信息:)