【问题标题】:How to read JSON data from web and insert insert into database如何从 Web 读取 JSON 数据并将插入插入数据库
【发布时间】:2020-04-15 13:05:00
【问题描述】:

当我检索时,我只获取第一行的数据;那是一个只被检索到的对象。

在这种情况下,没有检索到 empNo = 3 数据。

/* 我正在使用 JAX_rs 功能和 PostMan 来测试数据。

下面是我正在使用的插入代码 */

邮递员样本数据

[ {
        "empNo": "2",
        "empName": "roy",
        "empRole": "Software"
    },
    {
        "empNo": "3",
        "empName": "sri",
        "empRole": "Software"
    }
]

// 模型类

package com.employee.employeeModel;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlAccessType;

@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee {

    private String empNo;
    private String empName;
    private String empRole;

    /*
     * public Employee() // Default DeConstructor
     * {
     * 
     * }
     */

    /*
     * public Employee(String empNo, String empName, String empRole) // Parameterized Constructor
     * 
     * { 
     * this.empNo =  * empNo; this.empName = empName; this.empRole = empRole; }
     */

    public String getEmpNo() {
        return empNo;
    }

    public void setEmpNo(String empNo) {  //instance method
        this.empNo = empNo;
    }

    public String getEmpName() {
        return empName;
    }

    public void setEmpName(String empName) {
        this.empName = empName;
    }

    public String getEmpRole() {
        return empRole;
    }

    public void setEmpRole(String empRole) {
        this.empRole = empRole;
    }
}

// 插入方法-

public static  Employee addEmployee(Employee emp2) {

    int status=0;

    try {
        Connection connection = EmployeeConnection.getConnection();
        PreparedStatement ps=connection.prepareStatement( "INSERT INTO employee VALUES(?,?,?)");


        ps.setString(1, emp2.getEmpNo());
        ps.setString(2, emp2.getEmpName()); 
        ps.setString(3,emp2.getEmpRole());
         status =  ps.executeUpdate();
         System.out.println(status +"row inserterd sucessfully" );
    }
    catch (SQLException ex) { System.out.println(ex.getMessage()); 

    }

        return emp2;

}

// POST 方法的服务类

@POST
@Path("/Submit")
@Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Employee  addEmployee(Employee emp)
    {

            return EmployeeData.addEmployee(emp);   
    }

【问题讨论】:

    标签: java insert http-post jax-rs crud


    【解决方案1】:

    在 Postman 中,您提交多个员工(数组),但您的端点和 DAO 方法仅适用于 Employee addEmployee(Employee emp) 的一个实例。

    您需要修改端点/DAO 来处理Employee[]/List<Employee>

    更新:添加了处理多个员工的端点

    @POST
    @Path("/employees")
    @Consumes({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
    @Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
    public List<Employee> addEmployees(List<Employee> employees) {
        List<Employee> result = new ArrayList<>();
    
        for (Employee employee : employees) {
            result.add(EmployeeData.addEmployee(employee));
        }
    
        return result;
    }
    

    使用适当的import 语句添加上述代码 sn-p 并测试您新添加的/employees API 端点。

    【讨论】:

    • 感谢您的输入.. 你能帮我写代码 sn-p.. 提前谢谢
    • 对不起,不 :) 这是你必须自己做的事情。
    • 嗨,Alex,正在努力用模型类映射元素.. 你会建议如何映射值
    • 当您在 Postman 请求中仅提交一个用户时:{ "empNo": "4", "empName": "jack", "empRole": "Software" },您的应用是否正常工作?
    • 是的,亚历克斯,我得到了 .its 从给定数组中仅在数据库中插入一行
    猜你喜欢
    • 1970-01-01
    • 2017-03-29
    • 2019-10-25
    • 2015-07-25
    • 2019-05-15
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多