代码优化记录
代码优化记录
神龟虽寿,犹有竟时。
一、数据库校验并抛异常优化
1 /** 2 * 校验:这辆车是否是他的(一个人可以有多辆车),不是直接抛异常 3 */ 4 public void edit(UserPayload payload) { 5 // 其他业务逻辑操作 6 // 校验方式一 7 checkStyleOne(payload.getUserId(), payload.getCarOwnerId()); 8 // 校验方式二,使用Asserts 的isTrue 9 isTrue(!checkStyleTwo(payload.getUserId()), "车辆与车主匹配不一致"); 10 // 其他业务逻辑操作 11 } 12 13 // 优化前: 14 public Boolean checkStyleOne(String userId, String carOwnerId) { 15 // 此人名下的所有车 16 List<Car> list = carService.getByOwnerId(carOwnerId); 17 if (list.size() > 0) { 18 Car car = list.get(0); 19 if (!car.getUserId().equals(userId)) { 20 throw new APIException("车辆与车主匹配不一致"); 21 } 22 } 23 return true; 24 } 25 26 // 优化后: 27 public boolean checkStyleTwo(String userId) { 28 XQLFragment sql = new XQLFragment(); 29 sql.append("select count(1) from ").append(Car.class); 30 sql.append(" where id = :id", userId); 31 return hibernateOperations.count(sql) > 0; 32 }