如何从Web读取JSON数据并将插入插入数据库

时间:2020-04-15 13:05:00

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

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

在这种情况下,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);   
    }

1 个答案:

答案 0 :(得分:0)

在Postman中,您提交了多个Employee(数组),但是您的端点和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语句添加上述代码段,并测试您新添加的/employees API端点。