琐碎知识点

一:关于数据库
1.1 将表中的ID自动返回注入到对象ID中
一般情况下,Mpaper层下的接口方法中增删改的返回值均为影响的行数,一般成功为1,失败抛出异常,但是当有需求需要返回插入记录的id时,我们的做法是:

//实际上,没有办法返回ID,只能将ID放入回填到所传的参数对应对应的ID上: 
@Insert(“INSERT INTO table1 (x1,x2)” +” VALUES (#{x1}, #{x2})”) 
@Options(useGeneratedKeys=true, keyProperty=”id”, keyColumn=”id”) 
int insertResId(PriceFeedBackDO priceFeedBackDO); 

这样,在插入一条记录时,就可以将插入的记录的ID回填到传入的对象的对应的ID属性中了。
二:关于类型转换
2.1 json字符串转map

import com.alibaba.fastjson.JSONObject;
JSONObject jsonObject = JSONObject.parseObject(str);
Integer codeValue = jsonObject.getIntValue("code")

三:关于spring mvc三层
3.1 model层
1). java简单对象层

java简单对象层的定义可以分为DAO,VO以及DTO三种。
DAO:它所定义的每一个属性均对应于数据库表中的每一个字段;
VO:它是为了使用方便,往往需要封装我们需要使用的DAO中的部分重要属性;
DTO:它是为了向上层提供更好的处理数据,需要将数据做基本处理之后,封装到DTO对象中,作为一个中间数据转换对象。

  1. mapper层

1.在mapper层首先会有sql语句,其次,需要一个接口方法来为上层提供操作数据库的功能。当然还需要在该mapper接口上添加注解@Mapper和
@Component。对于sql语句的书写也有很多种,可以用@select(“select * from xx where xx”)的形式,除此之外,当然我们也可以通过使用@SelectProvider(type=classname.class,method=“methodname”)之后来写对应类中,对应的方法,来拼接实现sql语句。
2.在mapper层,有时我们需要在向数据库插入一条记录的时候同时返回其记录的ID,采用1中的返回就无法完成,因此,我们可以采用第一大节的1.1小节的关于数据库部分的对应内容。

  1. service层
    3.2 controller层
    1)关于传递参数
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

//在controller类上使用如下注解
@RestController
public class PriceController {
    @Autowired
	private IPriceService priceService;
	
    @RequestMapping(value = "/applyPrice", method = RequestMethod.POST)
    public RestResult applyPrice(HttpServletRequest request, 
	                             @RequestParam(value = "id", required = false, defaultValue = "0") Integer id,
	                             @RequestParam(value = "price" Integer price;
            ...
 }
 //其中,required默认为true,表示为必传参数,如果不传,就会返回错误码。对于可传可不传的参数可以将该参数设置为false,此时,可以设置默认值。

2)关于controller层的测试
可以用postman根据IP+端口或者域名的形式来测试,如果需要用到cookie也可以在postman中添加。

四. 接口文档(xx/swagger-ui.html#!)

import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

 @ApiOperation(value = "查询子常量")
 @ApiImplicitParams(
            {
                    @ApiImplicitParam(name = "category", value = "主常量类型,1:收车 2:场地 3:售车 4:其他", required = false, dataType = "Short", paramType = "find",defaultValue = ""),
                    @ApiImplicitParam(name = "subCategory", value = "子常量类型", required = false, dataType = "Short", paramType = "find",defaultValue = ""),
                    @ApiImplicitParam(name = "constantName", value = "子常量名称", required = false, dataType = "String", paramType = "find",defaultValue = "")

            })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值