接口开发

数据库表设计

 1 --员工表  2 create table Employee  3 (  4     id  NUMBER primary key,  5     employeeID NUMBER not null,  6     employeeName VARCHAR2(100) not null,  7     employeeSex VARCHAR2(100) not null,  8     employeeEmail VARCHAR2(100) not null,  9     employeeDepartmentID VARCHAR2(10) not null 10 ) 11 create unique index Employee_UINDEX on Employee (employeeID)  ---员工id唯一 12 15 drop sequence Sequence_Employee_id 16 --创建一个序列 17 create  sequence Sequence_Employee_id 18     start with 1 --起始值是1000 19     increment by 1 --每次增量1 20     maxvalue 99999 --最大增量9999

实体类

 1 package com.example.demo.api.restful.entity;  2  3 /**  4  * 员工主数据  5  *  6  * @author liuwenlong  7  * @create 2022-06-13 22:10:22  8 */  9 @SuppressWarnings("all") 10 public class Employee { 11 12 /** 13      * 员工ID 14 */ 15 private Integer employeeID; 16 17 /** 18      * 员工姓名 19 */ 20 private String employeeName; 21 22 /** 23      * 员工性别 24 */ 25 private String employeeSex; 26 27 /** 28      * 员工邮箱 29 */ 30 private String employeeEmail; 31 32 /** 33      * 员工部门ID 34 */ 35 private Integer employeeDepartmentID; 36 37 38 public Employee() { 39     } 40 41 public Integer getEmployeeID() { 42 return employeeID; 43     } 44 45 public void setEmployeeID(Integer employeeID) { 46 this.employeeID = employeeID; 47     } 48 49 public String getEmployeeName() { 50 return employeeName; 51     } 52 53 public void setEmployeeName(String employeeName) { 54 this.employeeName = employeeName; 55     } 56 57 public String getEmployeeSex() { 58 return employeeSex; 59     } 60 61 public void setEmployeeSex(String employeeSex) { 62 this.employeeSex = employeeSex; 63     } 64 65 public String getEmployeeEmail() { 66 return employeeEmail; 67     } 68 69 public void setEmployeeEmail(String employeeEmail) { 70 this.employeeEmail = employeeEmail; 71     } 72 73 public Integer getEmployeeDepartmentID() { 74 return employeeDepartmentID; 75     } 76 77 public void setEmployeeDepartmentID(Integer employeeDepartmentID) { 78 this.employeeDepartmentID = employeeDepartmentID; 79     } 80 81     @Override 82 public String toString() { 83 return "Employee{" + 84                 "employeeID=" + employeeID + 85                 ", employeeName='" + employeeName + '/'' + 86                 ", employeeSex='" + employeeSex + '/'' + 87                 ", employeeEmail='" + employeeEmail + '/'' + 88                 ", employeeDepartmentID=" + employeeDepartmentID + 89                 '}'; 90     } 91 }

控制类Controller

 1 package com.example.demo.api.restful.controller;  2  3 import com.example.demo.api.restful.service.IRestfulService;  4 import net.sf.json.JSONObject;  5 import org.springframework.beans.factory.annotation.Autowired;  6 import org.springframework.web.bind.annotation.*;  7  8  9 /** 10  * restful接口 11  * 12  * @author liuwenlong 13  * @create 2022-06-13 14:49:56 14 */ 15 @RestController 16 @SuppressWarnings("all") 17 @RequestMapping(value = "/restful/api") 18 public class RestfulController { 19 20     @Autowired 21     IRestfulService iRestfulService; 22 23 /** 24      * 员工主数据接入接口 25      * 26      * @param body 27      * @return 28 */ 29     @RequestMapping(value = "employeeMasterData", method = RequestMethod.POST) 30 public JSONObject employeeMasterData(@RequestBody JSONObject body) { 31 return iRestfulService.employeeMasterData(body); 32     } 33 }

接口(Service)

 1 package com.example.demo.api.restful.service;  2  3 import net.sf.json.JSONObject;  4 import org.springframework.web.bind.annotation.RequestBody;  5  6 /**  7  * @author liuwenlong  8  * @create 2022-06-13 22:47:37  9 */ 10 @SuppressWarnings("all") 11 public interface IRestfulService { 12 /** 13      * 人员主数据接口接入 14      * 15      * @param body 16      * @return 17 */ 18     JSONObject employeeMasterData(@RequestBody JSONObject body); 19 }

业务实现层(Impl)

  1 package com.example.demo.api.restful.service.impl;   2   3 import com.example.demo.api.restful.dao.IRestfulMapper;   4 import com.example.demo.api.restful.entity.Employee;   5 import com.example.demo.api.entity.HEAD;   6 import com.example.demo.api.entity.LIST;   7 import com.example.demo.api.entity.Response;   8 import com.example.demo.api.restful.service.IRestfulService;   9 import net.sf.json.JSONArray;  10 import net.sf.json.JSONObject;  11 import org.springframework.beans.factory.annotation.Autowired;  12 import org.springframework.stereotype.Service;  13  14 import java.util.LinkedList;  15 import java.util.List;  16  17 /**  18  * @author liuwenlong  19  * @create 2022-06-13 22:48:52  20 */  21 @SuppressWarnings("all")  22 @Service  23 public class RestfulServiceImpl implements IRestfulService {  24  25     @Autowired  26     IRestfulMapper iRestfulMapper;  27  28  29 /**  30      * 人员主数据接口接入  31      *  32      * @param body  33      * @return  34 */  35     @Override  36 public JSONObject employeeMasterData(JSONObject body) {  37 try {  38 //JSONObject jsonObject = JSONObject.fromObject(body);//将json字符串转为json对象  39             String BIZTRANSACTIONID = body.getJSONObject("HEAD").getString("BIZTRANSACTIONID");  40             JSONArray requestList = body.getJSONArray("LIST");//得到上游请求来的LIST数组  41             List<Employee> employeeList = new LinkedList<>();//存放得到的人员信息  42  43 int successCount = 0;//多少条数据  44 int result = 0;//成功失败标识(默认)  45             String comments = "成功";//成功标识(默认)  46             String errorInfo = "";//失败标识  47             String errorCode = "";//失败代码  48  49 //组装反馈HEAD  50             HEAD responseHead = new HEAD();  51 //组装反馈LIST  52             List<LIST> responseLIST = new LinkedList<>();  53  54  55 for (int i = 0; i < requestList.size(); i++) {  56 int employeeID = Integer.parseInt(requestList.getJSONObject(i).getString("employeeID"));  57                 String employeeName = requestList.getJSONObject(i).getString("employeeName");  58                 String employeeSex = requestList.getJSONObject(i).getString("employeeSex");  59                 String employeeEmail = requestList.getJSONObject(i).getString("employeeEmail");  60 int employeeDepartmentID = Integer.parseInt(requestList.getJSONObject(i).getString("employeeDepartmentID"));  61                 Employee employee = new Employee();  62                 employee.setEmployeeID(employeeID);  63                 employee.setEmployeeName(employeeName);  64                 employee.setEmployeeSex(employeeSex);  65                 employee.setEmployeeEmail(employeeEmail);  66                 employee.setEmployeeDepartmentID(employeeDepartmentID);  67  68                 LIST errorList = new LIST();  69 try {  70 int insertDBresult = iRestfulMapper.employeeMasterData(employee);//插入数据库  71                     successCount++;  72                     errorList.setId(employeeID);  73                     errorList.setMessage("success");  74                 } catch (Exception e) {  75                     System.out.println(e.getMessage());  76                     errorInfo = "错误详情请参考list里对应错误提示";  77                     result = 1;  78                     errorList.setId(employeeID);  79                     errorList.setMessage(e.getCause().toString());  80                 }  81                 responseLIST.add(errorList);  82             }  83  84 if (result == 1) {  85                 result = 1;  86                 comments = "接收失败";  87             }  88  89 //组装反馈HEAD  90             responseHead.setBIZTRANSACTIONID(BIZTRANSACTIONID);  91             responseHead.setRESULT(result);  92             responseHead.setCOMMENTS(comments);  93             responseHead.setERRORCODE(errorCode);  94             responseHead.setERRORINFO(errorInfo);  95             responseHead.setSUCCESSCOUNT(successCount);  96  97 //组装完整反馈信息  98             Response responseInfo = new Response();  99             responseInfo.setHEAD(responseHead); 100             responseInfo.setLIST(responseLIST); 101 102 return JSONObject.fromObject(responseInfo); 103 104         } catch (Exception e) { 105             String error = "{/"error/":/"" + e.getMessage().replace("/"", "///"") + "/"}"; 106 return JSONObject.fromObject(error); 107         } 108     } 109 }

DAO

 1 package com.example.demo.api.restful.dao;  2  3 import com.example.demo.api.restful.entity.Employee;  4  5 /**  6  * @author liuwenlong  7  * @create 2022-06-13 22:54:11  8 */  9 @SuppressWarnings("all") 10 public interface IRestfulMapper { 11 12 /** 13      * 人员主数据接口接入 14      * 15      * @param body 16      * @return 17 */ 18 int employeeMasterData(Employee employee); 19 }

Mapper

 1 <?xml version="1.0" encoding="UTF-8"?>  2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  3 <mapper namespace="com.example.demo.api.restful.dao.IRestfulMapper">  4  5 <!--人员主数据接入-->  6 <insert id="employeeMasterData" parameterType="com.example.demo.api.restful.entity.Employee">  7      insert into Employee(id,employeeID,employeeName,employeeSex,employeeEmail,employeeDepartmentID)  8      values(  9               Sequence_Employee_id.NEXTVAL, 10               #{employeeID}, 11               #{employeeName}, 12               #{employeeSex}, 13               #{employeeEmail}, 14               #{employeeDepartmentID} 15          ) 16 </insert> 17 </mapper>

数据库连接

1 #连接Oracle数据库 2 spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver 3 spring.datasource.url=jdbc:oracle:thin:@localhost:1521/orcl 4 spring.datasource.username=system 5 spring.datasource.password=123456 6 7 #加载Mybatis的xml 在:resources下 8 mybatis.mapper-locations=classpath*:/com/example/demo/api/restful/dao/*.xml

请求参数说明

1 接口名称:人员主数据接入接口 2 请求地址:http://localhost:8001/restful/api/employeeMasterData 3 请求方式:post 4 传输类型:application/json

请求报文示例

 1 {  2 "HEAD": {  3 "BIZTRANSACTIONID": "PMS_ES_001_20210304110203",  4 "COUNT": "1",  5 "CONSUMER": "ES",  6 "SRVLEVEL": "1",  7 "ACCOUNT": "",  8 "PASSWORD": "",  9 "TRANSID": "" 10     }, 11 "LIST": [{ 12 "employeeID": 10001, 13 "employeeName": "张东", 14 "employeeSex": "男", 15 "employeeEmail": "zhangd@123.com", 16 "employeeDepartmentID": 1 17         }, { 18 "employeeID": 10002, 19 "employeeName": "肖瑾", 20 "employeeSex": "女", 21 "employeeEmail": "xiaoj@123.com", 22 "employeeDepartmentID": 2 23         }, { 24 "employeeID": 10003, 25 "employeeName": "孙凯凯", 26 "employeeSex": "男", 27 "employeeEmail": "sunkk@123.com", 28 "employeeDepartmentID": 3 29         } 30     ] 31 }

响应报文示例

 1 响应成功报文示例:  2 {  3 "HEAD": {  4 "BIZTRANSACTIONID": "PMS_ES_001_20210304110203",  5 "COMMENTS": "成功",  6 "ERRORCODE": "",  7 "ERRORINFO": "",  8 "RESULT": 0,  9 "SUCCESSCOUNT": 3 10     }, 11 "LIST": [ 12         { 13 "id": 11001, 14 "message": "success" 15         }, 16         { 17 "id": 11002, 18 "message": "success" 19         }, 20         { 21 "id": 11003, 22 "message": "success" 23         } 24     ] 25 } 26 27 响应失败报文样例 28 29 { 30 "HEAD": { 31 "BIZTRANSACTIONID": "PMS_ES_001_20210304110203", 32 "COMMENTS": "接收失败", 33 "ERRORCODE": "", 34 "ERRORINFO": "错误详情请参考list里对应错误提示", 35 "RESULT": 1, 36 "SUCCESSCOUNT": 1 37     }, 38 "LIST": [ 39         { 40 "id": 11004, 41 "message": "success" 42         }, 43         { 44 "id": 11002, 45 "message": "java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (SYSTEM.EMPLOYEE_UINDEX)/n" 46         }, 47         { 48 "id": 11003, 49 "message": "java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (SYSTEM.EMPLOYEE_UINDEX)/n" 50         } 51     ] 52 }

测试

 

商匡云商
Logo
注册新帐户
对比商品
  • 合计 (0)
对比
0
购物车