代码优化记录

代码优化记录

 

         神龟虽寿,犹有竟时。

 

一、数据库校验并抛异常优化

 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     }
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 代码优化记录