po层:
两个属性名:table(String)、params(HashMap<String,String>)
dao层:
//更新数据
public Integer updateData(@Param("table") String table, @Param("params") HashMap<String, String> params);
mapper映射文件:
<update id="updateData" parameterType="data" statementType="PREPARED">
update ${table} set
<foreach item="value" index="key" collection="params" separator=",">
<if test="key != 'ID'">${key} = #{value}</if>
</foreach>
where
<foreach item="value" index="key" collection="params" separator=",">
<if test="key == 'ID'">ID = #{value}</if>
</foreach>
</update>
通过< foreach>标签遍历params中的键值对
Service层
//更新数据
public Integer updateData(String table, HashMap<String, String> params);
Impl实现类:
//更新数据
@Override
public Integer updateData( String table,HashMap<String,String> params) {
int num = this.dataDao.updateData(table,params);
return num;
}
Controller层
/**
* 更新数据
* @param data
* @return
*/
@RequestMapping(value = "/UPDATE")
@ResponseBody
public String updateData(@RequestBody Data data) {
int num = dataService.updateData(data.getTable(), data.getParams());
return num > 0 ? "ok" : "error";
}
数据更新成功返回ok,失败返回error
使用Postman进行接口测试:
发送请求后,响应体内容
数据表更新成功
原customer表数据
调用接口后customer表数据