概述
前言
为了方便管理请求的参数、结果集与请求状态信息,将以上数据封装到一个类中,并搭配其他的一些工具类。
json样式
请求
{
"sys": {},
"userInfo": {},
"parameter": {
"name": "hzx"
},
"result": {}
}
返回结果
{
"sys": {
"msg": "查询所有用户",
"fileName": "UserController.java",
"methodName": "queryUser",
"userId": 1,
"status": 1
},
"userInfo": {},
"parameter": {
"name": "hzx"
},
"result": {
"userList": [{
"id": 1,
"name": "hzx",
"sex": "1"
}]
}
}
sys 存放信息
msg:后端返回给前端的提示,请求是否成功,出现异常时显示异常信息
fileName:请求所在类的文件名
methodName:请求的方法名
status:请求状态,0失败,1成功
userInfo 用户信息,前端将当前登录的用户信息放入userInfo块中,可以用来做用户校验。
parameter 参数,以键值对的形式传参
result 返回结果,将请求的执行结果放入result块中,result块中可以是任何数据类型,包括集合。
核心代码
/**
* @author huangzixiao
* @Description 参数、结果封装类
* @date 2021/10/21
*/
public class EiInfo {
private Map<String, Object> sys = new HashMap<String, Object>();
private Map<String, Object> userInfo = new HashMap<String, Object>();
private Map<String, Object> parameter = new HashMap<String, Object>();
private Map<String, Object> result = new HashMap<String, Object>();
public EiInfo() {
}
public Map<String, Object> getSys() {
return sys;
}
public void setSys(Map<String, Object> sys) {
this.sys = sys;
}
public Map<String, Object> getUserInfo() {
return userInfo;
}
public void setUserInfo(Map<String, Object> userInfo) {
this.userInfo = userInfo;
}
public Map<String, Object> getParameter() {
return parameter;
}
public void setParameter(Map<String, Object> parameter) {
this.parameter = parameter;
}
public Map<String, Object> getResult() {
return result;
}
public void setResult(Map<String, Object> result) {
this.result = result;
}
public Object getSysCell(String key) {
return sys.get(key);
}
public void setSysCell(String key, Object value) {
sys.put(key, value);
}
public Object getUserInfoCell(String key) {
return userInfo.get(key);
}
public void setUserInfoCell(String key, Object value) {
userInfo.put(key, value);
}
public Object getParameterCell(String key) {
return parameter.get(key);
}
public void setParameterCell(String key, Object value) {
parameter.put(key, value);
}
public Object getResultCell(String key) {
return result.get(key);
}
public void setResultCell(String key, Object value) {
result.put(key, value);
}
public void sysSetStatus(int status) {
sys.put(EiConstant.status, status);
}
public Integer sysSetStatus() {
return (Integer) sys.get(EiConstant.status);
}
public void sysSetMsg(String msg) {
sys.put(EiConstant.msg, msg);
}
public String sysGetMsg() {
return (String) sys.get(EiConstant.msg);
}
public void sysSetFileName(String fileName) {
sys.put(EiConstant.fileName, fileName);
}
public void sysSetMethodName(String methodName) {
sys.put(EiConstant.methodName, methodName);
}
}
方法说明
getXXX XXX为sys、userInfo、parameter、result块的名字,获取XXX块中的所有内容,返回键值对格式
setXXX XXX为sys、userInfo、parameter、result块的名字,向XXX块中添加数据,以键值对形式传参
getXXXCell XXX为sys、userInfo、parameter、result块的名字,获取XXX块中指定内容
setXXXCell XXX为sys、userInfo、parameter、result块的名字,向XXX块中写入指定内容,可以额外的任意内容。
sysSetStatus 设置sys块中status的值,可以设置为任意值
sysSetMsg 设置sys块中msg的值,可以设置为任意值
请求测试
SQL语句
<mapper namespace="com.dao.UserDao">
<resultMap id="userMap" type="com.pojo.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
</resultMap>
<select id="getAllUsers" resultMap="userMap" parameterType="java.util.HashMap">
select *
from t_user
<trim prefix="where" prefixOverrides="and">
<if test="id!=null and id!=''">
and id = #{id}
</if>
<if test="name!=null and name!=''">
and name = #{name}
</if>
</trim>
</select>
<update id="updateUser" parameterType="java.util.HashMap">
update t_user
<trim prefix="set" suffixOverrides=",">
<if test="name!=null and name!=''">
name = #{name},
</if>
<if test="sex!=null and sex!='' or sex==0">
sex=#{sex},
</if>
</trim>
where id = #{id}
</update>
<insert id="insertUser" parameterType="java.util.HashMap" keyProperty="id" useGeneratedKeys="true">
insert INTO t_user (name,sex) VALUES(#{name},#{sex})
</insert>
</mapper>
1.1 查询
@RequestMapping(value = "/query", method = RequestMethod.POST)
public EiInfo queryUser(@RequestBody EiInfo eiInfo){
EiInfo outInfo = new EiInfo();
List<User> userList = userService.getAllUsers(eiInfo.getParameter());
try {
eiInfo.setResultCell("userList",userList);
} catch (Exception e) {
e.printStackTrace();
}
List<User> result = (List<User>) eiInfo.getResultCell("userList");
if (EiInfoUtils.listIsNotEmpty(result)) {
outInfo.setResultCell("userList",eiInfo.getResultCell("userList"));
outInfo.setSysCell("userId",result.get(0).getId());
return ReturnOutInfo.outInfoSuccess(outInfo,"查询所有用户");
}else{
return ReturnOutInfo.outInfoFail(outInfo,"没有数据");
}
}
1.2 参数
{
"sys": {},
"userInfo": {},
"parameter": {
"name": "hzx"
},
"result": {}
}
1.3 结果
{
"sys": {
"msg": "查询所有用户",
"fileName": "UserController.java",
"methodName": "queryUser",
"userId": 1,
"status": 1
},
"userInfo": {},
"parameter": {},
"result": {
"userList": [
{
"id": 1,
"name": "hzx",
"sex": "1"
},
{
"id": 8,
"name": "hzx",
"sex": "1"
}
]
}
}
2.1 新增
@RequestMapping(value = "/add",method = RequestMethod.POST)
public EiInfo addUser(@RequestBody EiInfo eiInfo){
EiInfo outInfo = new EiInfo();
try {
// User user = EiInfoUtils.mapToObject(eiInfo.getParameter(), User.class);
Map user = eiInfo.getParameter();
userService.insertUser(user);
outInfo.setResultCell("add",user);
return ReturnOutInfo.outInfoSuccess(outInfo,"新增成功");
} catch (Exception e) {
e.printStackTrace();
return ReturnOutInfo.outInfoFail(outInfo,"新增失败",e.toString());
}
}
2.2 参数
{
"sys": {},
"userInfo": {},
"parameter": {
"name": "hzx-new",
"sex":"1"
},
"result": {}
}
2.3 结果
{
"sys": {
"msg": "新增成功",
"fileName": "UserController.java",
"methodName": "addUser",
"status": 1
},
"userInfo": {},
"parameter": {},
"result": {
"add": {
"name": "hzx-new",
"sex": "1",
"id": 11
}
}
}
最后
以上就是老迟到网络为你收集整理的自定义请求参数结果封装类的全部内容,希望文章能够帮你解决自定义请求参数结果封装类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复