如何使用模型类作为输入传递输入参数到Spring restful web服务方法&执行MySql存储过程

时间:2016-01-07 11:29:15

标签: java mysql spring rest spring-mvc

我试图在春天创建一个Web服务&想要以json格式将输入传递给休息控制器,对于那些输入,我创建了一个带有输入字段和模型的模型类。传递给方法,如

@RequestMapping(value = "/create", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.CREATED)
public  Object addEmployee(@RequestBody UserInputModel userInputModel,
        HttpServletResponse response) {
    Object result;
    try {           
        result = dataServices.addEntity(userInputModel);            
        return result;
    } catch (Exception e) {
        e.printStackTrace();            
        return null;
    }

}

这里我使用rest clients& amp;传递输入参数。获取所有值" null",任何人都可以告诉我如何通过rest clients将userInputModel类传递给方法

输入值我使用rest客户端作为

提交
{
"user_id": "",
"user_email_id": "anup@mahjkhjilinator.com",
"user_password": "jhdgfjhgdsjfg",
"firstname": "Anup",
"lastname": "Deshpande",
"mobile_number": "hkhjk",
"user_status": "0",
"isdeleted": "0",
"created_user_id": "1",
"profile_picturename": "anup.jpeg",
"address": "kjhfgkjdfhgfdhk"

}

UserInputModel类为:

    @Entity
@Table(name = "users")
public class UserInputModel {

//  private final String modelName = "user";

    @Id
    @GeneratedValue
    @Column(name = "user_id")
    private Integer user_id;
    @Column(name = "user_email_id")
    @NotNull
    @Email
    private String user_email_id;
    @Column(name = "user_password")
    private String user_password;
    @Column(name = "firstname")
    private String firstname;
    @Column(name = "lastname")
    private String lastname;
    @NotNull
    // @Phone
    @Size(min = 10, max = 12)
    @Column(name = "mobile_number")
    private String mobile_number;
    @Column(name = "user_status")
    private Integer user_status;
    @Column(name = "isdeleted")
    private Integer isdeleted;
    @Column(name = "created_by")
    private Integer created_by;
    @Column(name = "profile_picturename")
    private String profile_picturename;
    @Column(name = "address")
    private String address;
    public UserInputModel() {
        super();
        // TODO Auto-generated constructor stub
    }

    public UserInputModel(Integer user_id, String user_email_id,
            String user_password, String firstname, String lastname,
            String mobile_number, Integer user_status, Integer isdeleted,
            Integer created_by, String profile_picturename, String address) {
        super();
        this.user_id = user_id;
        this.user_email_id = user_email_id;
        this.user_password = user_password;
        this.firstname = firstname;
        this.lastname = lastname;
        this.mobile_number = mobile_number;
        this.user_status = user_status;
        this.isdeleted = isdeleted;
        this.created_by = created_by;
        this.profile_picturename = profile_picturename;
        this.address = address;
    }
    public Integer getUser_id() {
        return user_id;
    }

    public void setUser_id(Integer user_id) {
        this.user_id = user_id;
    }

    public String getUser_email_id() {
        return user_email_id;
    }

    public void setUser_email_id(String user_email_id) {
        this.user_email_id = user_email_id;
    }

    public String getUser_password() {
        return user_password;
    }

    public void setUser_password(String user_password) {
        this.user_password = user_password;
    }

    public String getFirstname() {
        return firstname;
    }

    public void setFirstname(String firstname) {
        this.firstname = firstname;
    }

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String lastname) {
        this.lastname = lastname;
    }

    public String getMobile_number() {
        return mobile_number;
    }

    public void setMobile_number(String mobile_number) {
        this.mobile_number = mobile_number;
    }

    public Integer getUser_status() {
        return user_status;
    }

    public void setUser_status(Integer user_status) {
        this.user_status = user_status;
    }

    public Integer getIsdeleted() {
        return isdeleted;
    }

    public void setIsdeleted(Integer isdeleted) {
        this.isdeleted = isdeleted;
    }

    public Integer getCreated_by() {
        return created_by;
    }

    public void setCreated_by(Integer created_by) {
        this.created_by = created_by;
    }

    public String getProfile_picturename() {
        return profile_picturename;
    }

    public void setProfile_picturename(String profile_picturename) {
        this.profile_picturename = profile_picturename;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

addEntity方法代码:

 @Override
    public User addEntity(UserInputModel userInputModel) throws Exception {
        User user = new User();
        DateTimeUtil dateTimeUtil = new DateTimeUtil();
        Connection con = null;
        CallableStatement callableStatement = null;
        ResultSet resultSet = null;
        try {

            con = new MySqlConnection().getConnection();
            callableStatement = con
                    .prepareCall("{ call sp_user_upsert(?,?,?,?,?,?,?,?,?,?) } ");
            callableStatement.setInt("pv_user_id", userInputModel.getUser_id());
            callableStatement.setString("pv_user_email_id ",
                    userInputModel.getUser_email_id());
            callableStatement.setString("pv_user_password",
                    userInputModel.getUser_password());
            callableStatement.setString("pv_firstname", userInputModel.getFirstname());
            callableStatement.setString("pv_lastname", userInputModel.getLastname());
            callableStatement.setString("pv_mobile_number",
                    userInputModel.getMobile_number());
            callableStatement.setInt("pv_user_status", userInputModel.getUser_status());
            callableStatement.setInt("pv_isdeleted", userInputModel.getIsdeleted());
            callableStatement
                    .setInt("pv_created_user_id", userInputModel.getCreated_by());
            callableStatement.setString("pv_profile_picturename",
                    userInputModel.getProfile_picturename());
            callableStatement.setString("pv_address", userInputModel.getAddress());
            resultSet = callableStatement.executeQuery();
            while (resultSet.next()) {
                user.setUser_id(resultSet.getInt("user_id"));
                user.setUser_email_id(resultSet.getString("user_email_id"));
                user.setUser_password(resultSet.getString("user_password"));
                user.setFirstname(resultSet.getString("firstname"));
                user.setLastname(resultSet.getString("lastname"));
                user.setRole_id(resultSet.getInt("role_id"));
                user.setMobile_number(resultSet.getString("mobile_number"));
                user.setUser_status(resultSet.getInt("user_status"));
                user.setCreated_by(resultSet.getInt("created_by"));
                user.setCreated_date(resultSet.getString("created_date"));
                user.setModified_by(resultSet.getInt("modified_by"));
                user.setModified_date(resultSet.getString("modified_date"));
                user.setIsdeleted(resultSet.getInt("isdeleted"));
                user.setOldpassword(resultSet.getString("oldpassword"));
                user.setProfile_picturename(resultSet
                        .getString("profile_picturename"));
                user.setAddress(resultSet.getString("address"));

//              user.setUser_id(resultSet.getInt("user_id"));

            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (resultSet != null)
                resultSet.close();
            if (callableStatement != null)
                callableStatement.close();
            if (con != null)
                con.close();
        }
        return user;
    }

提前致谢

1 个答案:

答案 0 :(得分:2)

    @RequestMapping(value = "/create", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseStatus(HttpStatus.CREATED)
    public  Response addEmployee(@RequestBody UserInputModel userInputModel,
            JSONObject json) {
        Response result;
        try { 
               String pv_user_email_id = "";
                if(json.has("pv_user_email_id")){
                    pv_user_email_id = json.getString("pv_user_email_id");
                }  

              Integer id =0;
              if(json.has("id")){
                    id = json.getInt("id");
                }

              userInputModel.setUser_email_id(pv_user_email_id);
              userInputModel.setId(id);

            result = dataServices.addEntity(userInputModel);            
            return result;
        } catch (Exception e) {
            e.printStackTrace();            
            return null;
        }

    }

要给出的JSON输入:

   {
    "pv_user_email_id":"user@gmail.com",
    "pv_user_password":"1234"
    "id":2
    }  

请参考上面的代码并相应地进行更改。我给出了一个参数的示例,对模型类中使用的所有参数都遵循相同的参数。