2023年6月25日发(作者:)
功能实现——统⼀返回格式(ResponseBodyAdvice)ResponseBodyAdvice 返回处理基础学习:–
– 参考⽂档:-----
-----
源代码:–
–⽬录结构说明请转⾄Entity层在entity⽬录下创建 和 ⽂件ckage ;public enum configResultCode {
/*
成功状态码 */ SUCCESS(0, "成功"), /*
系统500错误*/ SYSTEM_ERROR(10000, "系统异常,请稍后重试"), UNAUTHORIZED(10401, "签名验证失败"), /*
参数错误:10001-19999 */ PARAM_IS_INVALID(10001, "参数⽆效"), /*
⽤户错误:20001-29999*/ USER_HAS_EXISTED(20001, "⽤户名已存在"), USER_NOT_FIND(20002, "⽤户名不存在");
private Integer code; private String message; configResultCode(Integer code, String message) { = code; e = message; } public Integer code() { return ; } public String message() { return e; }}ckage
import
import
import
import
;AllArgsConstructor;Data;NoArgsConstructor;Serializable;@Data@NoArgsConstructor@AllArgsConstructorpublic class configResult
成功,创建ResResult:没data数据 */ public static configResult createSuccess() { configResult result = new configResult(); ultCode(S); return result; } /** *
成功,创建ResResult:有data数据 */ public static configResult createSuccess(Object data) { configResult result = new configResult(); ultCode(S); a(data); return result; } /** *
成功,创建ResResult:有data数据,有页⾯数量展⽰ */ public static configResult createSuccess(Object data,Integer count) { configResult result = new configResult(); ultCode(S); a(data); nt(count); return result; } /** *
失败,指定code,msg */ public static configResult createFail(Integer code, String msg) { configResult result = new configResult(); e(code); (msg); (msg); return result; } /** *
失败,指定configResultCode枚举 */ public static configResult createFail(configResultCode resultCode) { configResult result = new configResult(); ultCode(resultCode); return result; } /** *
把configResultCode枚举转换为ResResult */ private void setResultCode(configResultCode code) { = (); = e(); }}Utils层在utils⽬录下创建⽂件package ;import
import
import
import
import
import
import
import
import JSONUtil;;MethodParameter;MediaType;HttpMessageConverter;ServerHttpRequest;ServerHttpResponse;ControllerAdvice;ResponseBodyAdvice;@ControllerAdvice(basePackages = "ller")public class responseHandler implements ResponseBodyAdvice
处理response的具体业务⽅法 */ @Override public Object beforeBodyWrite(Object arg0, MethodParameter arg1, MediaType arg2, Class extends HttpMessageConverter>> arg3, ServerHttpRequest arg4, ServerHttpResponse arg5) { // TODO Auto-generated method stub //
获取返回数据类型 String returnType = ameterType().getSimpleName(); //
根据返回数据类型作相应处理 switch (returnType) { case "void": return Success(); case "Result": return (configResult) arg0; case "String": //需要做转换,否则报错 return Str(Success(arg0)); case "JSONObject": return Success(bj(arg0).getObj("body"), bj(arg0).size(), bj(arg0).isNull("col") ? null : bj(arg0).isNull("col")); default: return Str(Success(arg0)); } } /** *
是否⽀持advice功能 treu=⽀持,false=不⽀持 */ @Override public boolean supports(MethodParameter arg0, Class extends HttpMessageConverter>> arg1) { // TODO Auto-generated method stub //
默认开启,后续遇到需求再进⾏判断 return true; }}Controller层修改controller⽬录下的⽂件package ;package
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
Db;Entity;DSFactory;MetaUtil;Table;JSONArray;SQLException;List;;;Autowired;GetMapping;PostMapping;RequestBody;RequestMapping;RequestParam;RestController;IterUtil;JSONException;JSONObject;JSONUtil;Setting;@RequestMapping("/dbManager")@RestControllerpublic class dbManagerController { @Autowired dbManagerService dManagerService; /** *
获取当前库的所有表名 * API测试URL:localhost:8080/dbManager/getAllTablesName?groupname=mssql *
* @return jsonObject { "code": 0, "msg": "", "count": 1000, "data": [{}, {}] } */ @GetMapping("/getAllTablesName") public JSONObject getAllTablesName(@RequestParam("groupname") String groupname){ return Obj().putOnce("list", TablesName(groupname)); } /** *
获取表结构 * API测试URL:localhost:8080/dbManager/getTableStructure/?tablename=sarticle&groupname=mssql *
* @param tablename
对应数据库的表名 * @return */ @GetMapping("/getTableStructure") public JSONObject getTableStructure(@RequestParam("tablename") String tablename, @RequestParam("groupname") String groupname) { return Obj().putOnce("list",leStructure(groupname, tablename)); } /** *
插⼊数据 API测试URL:localhost:8080/dbManager/addData *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"对应数据库的表名", "tablename" * : "{{tablename}}", * "#data":"需要插⼊的数据,例如:{id:1,title:你好},data能为空", "data":{{data}} * } * @return */ @PostMapping("/addData") @PostMapping("/addData") public String addData(@RequestBody JSONObject request) { Entity data = (("tablename")).parseBean(("data")); return a(("groupname"), data)?"success":"false"; } /** *
插⼊数据并返回⾃增主键 API测试URL:localhost:8080/dbManager/addDataForGeneratedKey *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"对应数据库的表名", "tablename" * : "{{tablename}}", * "#data":"需要插⼊的数据,例如:{id:1,title:你好},data能为空", "data":{{data}} * } * @return */ @PostMapping("/addDataForGeneratedKey") public Long addDataForGeneratedKey(@RequestBody JSONObject request) { Entity data = (("tablename")).parseBean(("data")); return aForGeneratedKey(("groupname"), data); } /** *
删除数据 API测试URL:localhost:8080/dbManager/delData *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"需要修改的数据库表名", * "tablename" : "{{tablename}}", * "#where":"限制条件,例如:{id:1},where不能为空", "where":{{where}} } * @return */ @PostMapping("/delData") public String delData(@RequestBody JSONObject request) { Entity where = (("tablename")).parseBean(("where")); return a(("groupname"), where)?"success":"false"; } /** *
更新数据 API测试URL:localhost:8080/dbManager/updateData *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"对应数据库的表名", "tablename" * : "{{tablename}}", * "#data":"需要插⼊的数据,例如:{id:1,title:你好},data不能为空", * "data":{{data}}, "#where":"限制条件,例如:{id:1},where不能为空", * "where":{{where}} } * @return */ @PostMapping("/updateData") public String updateData(@RequestBody JSONObject request) { Entity data = (("tablename")).parseBean(("data")); Entity where = (("tablename")).parseBean(("where")); return Data(("groupname"), data, where)?"success":"false"; } /** *
查询表全部数据 * API测试URL:localhost:8080/dbManager/findTableAllList?tablename=sarticle&groupname=mssql *
* @param tablename
对应数据库的表名 * @return */ @GetMapping("/findTableAllList") public JSONObject findAllList(@RequestParam("tablename") String tablename, @RequestParam("groupname") String groupname) { List
按条件进⾏查询,含模糊查询 API测试URL:localhost:8080/dbManager/findTableAllList *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"需要修改的数据库表名", * "tablename" : "{{tablename}}", * "#where":"限制条件,例如:{id:1},where不能为空", "where":{{where}} } * @return */ @PostMapping("/findTableAllList") public JSONObject findAllList(@RequestBody JSONObject request) { Entity where = (("tablename")).parseBean(("where")); return Obj().putOnce("list", lList(("groupname"), where)); } /** *
模糊查询 * API测试URL:localhost:8080/dbManager/findTableLikeList?tablename=sarticle&field=id&value=1&groupname=mssql *
* @param tablename
对应数据库的表名 * @param field
字段名 * @param value
对应值 * @return */ @GetMapping("/findTableLikeList") public JSONObject findLikeList(@RequestParam("tablename") String tablename, @RequestParam("field") String field, @RequestParam("value") String value, @RequestParam("groupname") String groupname) { return Obj().putOnce("data", keList(groupname, tablename, field, value)); } /** *
分页查询 API测试URL:localhost:8080/dbManager/getPage *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#table":"需要修改的数据库表名", * "tablename" : "{{tablename}}", * "#where":"限制条件,例如:{id:1},where不能为空", "where":{{where}}, * "#pages":"页码", "pages":{{pages}}, "#pageSize":"每页数量", * "pageSize":{{pagesize}} } * @return */ @PostMapping("/getPage") public JSONObject getPage(@RequestBody JSONObject request) { Entity where = (("tablename")).parseBean(("where")); List
⾃定义查询语句 API测试URL:localhost:8080/dbManager/customerRSqL *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#sql": "⾃定义sql语句", "sql": * "{{selectSQL}}" } * @return */ @PostMapping("/customerRSqL") public JSONObject customerRSqL(@RequestBody JSONObject request) { return Obj().putOnce("list", erRSqL(("groupname"), ("sql"))); } /** /** *
⾃定义查询语句 API测试URL:localhost:8080/dbManager/customerCUDSql *
* @param request
传⼊数据:JSON
格式: { "#groupname":"数据库对应组名", * "groupname":"{{groupname}}", "#sql": "⾃定义sql语句", "sql": * "{{selectSQL}}" } * @return */ @PostMapping("/customerCUDSql") public String customerCUDSql(@RequestBody JSONObject request) { return erCUDSql(("groupname"), ("sql"))?"success":"false"; }}测试数据1. 按dbManagerController 测试URL进⾏测试2. ⾃⾏下载源代码,获取postmanData配置⽂件导⼊到postman进⾏测试PS:因为两个数据库的字段不⼀样,所以将变量数据分成两个分⽀,可⾃⾏获取相应的分⽀进⾏测试
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687679199a30921.html
评论列表(0条)