java - 使用 RESTFul Web 服务实现 POST 方法以将数据插入 MYSQL 数据库

标签 java mysql rest post jersey

我正在尝试使用restful web服务来实现POST方法,使用jersey和Postman作为java中的rest客户端。现在我无法使用post方法将数据插入数据库。我在 mysql 数据库名称 person 中有一个表,它有 3 个字段。 id(主键,自动递增),名字,姓氏。我在那里创建了java类,其中一个是person作为模型类,PersonResource类用于声明REST api,PersonService用于实现REST方法以进行增删改查操作。

   PersonResource class is:

        @Path("/person")
        public class PersonResource {
            DbConnection connect=new DbConnection();
            Connection conn=null;

            PersonService service=new PersonService();

            @POST 
            @Consumes(MediaType.APPLICATION_JSON)// specifies the request body content
            @Produces(MediaType.APPLICATION_JSON)
            public Person addMessage(Person person) throws Exception{
            return service.addMessage(person);
        }
        }   

PersonService 类是:

        public class PersonService {

            DbConnection connect=new DbConnection();
            Connection conn=null;

            public Person addMessage(Person person) throws Exception {

            Person p=new Person();
            String sql="insert into person (firstname,lastname) values(?,?)";
            conn=connect.databaseConnection();
            PreparedStatement pst=conn.prepareStatement(sql);
                pst.setString(1,p.getFirstName());
                pst.setString(2,p.getLastName());   
                pst.executeUpdate();
                pst.close();
                return person;
        }
        }

我已成功通过人员 ID 检索人员信息。现在我想从 postman 发出post请求以将数据插入mysql数据库。

从 postman 那里,我发出了发布请求,并在 header 中选择内容类型 application/json ,并以 json 格式以原始文本写入数据。当我点击发送按钮时,它收到 415 不支持的媒体类型。

任何人都可以帮助我如何捕获 postman 数据以插入数据库,或者帮助我如何使用 postman 的 REST 实现 post 方法以在数据库中插入记录?这是我的 postman 窗口。 enter image description here 提前致谢

最佳答案

由于您遇到不受支持的操作异常,您的服务可能就在那里并且您已经能够获取它。然而,数据格式在两者之间不起作用。当您期望发送不同的内容( JSON )时,通常会发生这种情况,但由于您声明使用 JSON ,所以看不到这种情况。

我的看法是序列化不起作用,您正在获取 String 并期待 JSON。用于确认您可以修改或创建另一个接受纯文本并发送相同请求正文的服务。

如果这一点得到证实 - jersey 应该能够轻松序列化简单的对象。您只需为此添加正确的依赖项即可。是否是 jackson、gson 等。通常您可以简单地声明 jersey-json 依赖项,如下所示。确保存在一些序列化程序。

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>1.8</version>
</dependency>

检查this tutorial教程:这几乎是您愿意做的事情。

关于java - 使用 RESTFul Web 服务实现 POST 方法以将数据插入 MYSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40986411/

相关文章:

php - 将表中的所有信息列出到 html 表中

android - AndroidAnnotations 的 Rest 客户端日志记录

java - setOnClickListener 导致 Android 中强制关闭

java - Jersey:打印实际请求

mysql - 当连接表缺少记录时如何返回表中的所有记录

mysql if then 语句不起作用?

rest - HATEOAS 链接到带有可选请求参数的方法

python - 遍历python中的dict和list

java - 从命令行向 java 程序传递值,它是如何工作的?

java - 将 Spoon 模型转换为其他模型