我创建了一个RESTFUL Web服务,女巫返回了一个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;

    }
}

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;
    }
}

#1楼 票数: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方法教程 关于此有一些讨论,但您可能会跳过一会儿。

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

不确定上面的信息是否有帮助,但我认为这是一个开始,因为您必须编写代码才能了解更多信息:)

  ask by Jam Carlos Vendramini Filho translate from so

未解决问题?本站智能推荐:

1回复

如何在Java中创建独立的RESTful服务以使用JSON?

我正在尝试在没有Web服务器的Java中创建独立的RESTful服务。 此服务将使用从客户端应用程序发送的部分请求的JSON。 我可以使用JAX-WS创建SOAP Web服务,但是我想创建无需Web服务器即可运行的REST服务。 请提出如何创建此建议? 感谢您的帮助。 谢谢
3回复

Java中的json客户端提供Restful服务

通常,我一直在使用xml Web服务,并使用JAXB来编组/解组xml。 在这种情况下,我有一个用于生成类的xml模式,然后在运行时我只处理java对象而不是xml,因为解组工作是在我的幕后完成的。 存在哪种库可以在json中执行类似操作? 我必须进行一个http Get调用,该调用返回
2回复

RESTful服务

我必须使用客户端编写RESTful服务,但功能存在一些问题,因为无法确定@Produces应该使用哪种媒体类型。 基本上,我对字符串有一些操作:对单词进行计数,查找子字符串的索引,对符号进行计数以及对字符串进行反转。 我没有反转字符串的问题,但是与其他三个字符串我都遇到了问题,因为由于某
1回复

WebService返回多个值

我正在开发一个Web服务-Restful-,并且我需要返回多个值和一个图像。 像这样的结构-我不使用XML: <User> <id></id> <name></name> <login></logi
2回复

Restful服务参数不匹配异常

我有服务 和消费者 取自链接消费者在扔 当网络服务抛出 虽然product类只有 2 个参数qty ,只有name 。
2回复

RESTful服务-GET和POST请求不起作用

我正在使用RESTful Java客户端和Jersey客户端中给出的示例来练习GET和POST请求。 我下载了代码并尝试在Eclipse Neon上运行。 我使用了Tomcat v8.0。 但这并未提供该演示中所说明的预期输出。 “ GET”请求以JSON格式给出响应,但是没有一行作为“
2回复

在android中调用webservice时出现异常?

从android应用调用网络服务时,我得到了2到3次执行。 当我从2.3.3(Emulator)版本的应用程序调用Web服务时,我遇到了像UnhostException,4.2.1(真实设备)版本上的connectiontimeoutexception并在3.1版本上正常工作的异常,我不知道为
1回复

如何从RESTful服务器到Android客户端获取JSON内容?

我建立了一个REST服务器,该服务器自动从数据库中检索数据并将其作为JSON返回。 我想知道如何将JSON内容发送到移动设备并将其转换为字符串,以便将其存储在移动设备的数据库中。