API处理
controller方法定义
/**
* 新增XXX
* @author XXX
* @date 17:21 2018/5/22
* @param query 新增参数
*/
@RequestMapping(value = "/folder", method = RequestMethod.POST)
public void insert(@RequestBody String query) {
Map<String, Object> paramMap = getTokenParamMap(query);
new ValidateManager(paramMap)
.add(new NotEmptyValidator("parentId, name", "参数错误"))
.checkAndThrow();
new ApiResultWrapper().setObj(appMaterialLogic.insert(paramMap)).toResponse();
}
logic逻辑处理
/**
* 新增XXX
* @author XXX
* @date 12:11 2018/5/23
* @param paramMap 父ID, 名称
*/
public Map<String, Integer> insert(Map<String, Object> paramMap) {
Map<String, Integer> resultMap = Maps.newHashMap();
FileGroupDictionaryDO fileGroupDictionaryDO = new FileGroupDictionaryDO();
fileGroupDictionaryDO.setName(ValueUtil.toString(paramMap.get("name")));
fileGroupDictionaryDO.setParentId(ValueUtil.toInteger(paramMap.get("parentId")));
fileGroupDictionaryDO = fileGroupDictionaryService.insertFileFolder(fileGroupDictionaryDO);
resultMap.put("fileFolderId", fileGroupDictionaryDO.getId());
return resultMap;
}
Interface接口定义
返回新建实体对象
/**
* 新增XXX
* @author XXX
* @date 16:13 2018/5/22
* @param fileGroupDictionaryDO 文件夹信息
* @return int 影响的记录数
*/
FileGroupDictionaryDO insert(FileGroupDictionaryDO fileGroupDictionaryDO);
service实现返回
返回新建对象
/**
* 新增XXX
*
* @param fileGroupDictionaryDO 文件夹信息
* @return int 影响的记录数
* @author XXX
* @date 16:13 2018/5/22
*/
@Override
public FileGroupDictionaryDO insert(FileGroupDictionaryDO fileGroupDictionaryDO) {
fileGroupDictionaryMapper.insert(fileGroupDictionaryDO);
return fileGroupDictionaryDO;
}
mapper映射类定义
/**
* 新增XXX
* @author XXX
* @date 16:13 2018/5/22
* @param fileGroupDictionaryDO 文件夹信息
* @return int 影响的记录数
*/
int insert(FileGroupDictionaryDO fileGroupDictionaryDO);
mybatis映射文件
<!--新增XXX-->
<insert id="insert" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="xxx.FileGroupDictionaryDO">
INSERT INTO tableXXX (
`name`,
`level`,
parent_id
)
VALUES
(#{name}, 2, #{parentId})
</insert>
useGeneratedKeys:使用jdbc的getGenereatedKeys方法获取主键并赋值到keyProperty设置的属性中;
keyProperty:实体类主键字段对应的属性名;
keyColumn:数据库表中主键字段名。