这个项目也是我学习的一个项目,它是用id来删除的,但是接收id后,是用的String类型,不知道这样是为何呢?
@ApiOperation("删除收藏")
@GetMapping(value = "/delete")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId",value = "用户Id",dataType = "int"),
@ApiImplicitParam(name = "songId",value = "歌曲Id",dataType = "int")
})
public Object deleteCollect(HttpServletRequest request){
String userId = request.getParameter("userId"); //用户id
String songId = request.getParameter("songId"); //歌曲id
boolean flag = CollectService.deleteByUserIdSongId(Integer.parseInt(userId),Integer.parseInt(songId));
return flag;
}
它那样,不如直接用int接收,也不用在里面用Integer.paarseInt来取值了吧?
用整型也是可以的,看个人喜好了,比如分页查询时传的页码page
以及分页大小pageSize
这种明确是整型数字的一般会用Integer
。
你列出的用户id和歌曲id这种id字段,一般来说不会是纯整型,随机字符串(包含字母)的情况更常见,所以在实际开发中用String做为id字段类型更合理。
数据传输一般都是用字符串,这样操作多样,方便处理。在数据量很大的时候,主键id字段一般都是用String类型,可以用uuid自动生成,保证唯一及应对大数据量情况
通过request接收参数值的话,都是字符串类型。
request.getParameter()返回值类型就是字符串。
所以当你的业务是其他类型时,就需要间接转换。
后期用到框架的话,会做自动映射的。用实体类等其他类型来直接接收参数。
其实可以直接用@RequestParam Integer userId来接收参数,这样就不需要转换了
int取值范围太小
数据传输的时候,有些时候字符串类型要比int类型操作起来要方便
1、数据传输一般都是用字符串,也可以使用int ,看个人习惯。只要id中不包含字符,用integer也可以。
2、如果使用String,你截图的代码中需要对两个ID进行判空,不然运行时,在Integer.parseInt(userId)这一步可能会报错。