遵從java編碼規(guī)范,目的做到代碼規(guī)范、統(tǒng)一
魯曾說過:只要代碼規(guī)范了工作就完成了一半。。。
0.遵從java編碼規(guī)范,類名大駝峰,方法、屬性、變量小駝峰。
1.注意出現(xiàn)單詞拼寫,錯誤示例 getUserByMobileandName()。
2.不允許出現(xiàn)變量、類名、方法名出現(xiàn)下劃線。
3.除了沒有固定形式的返回可以用map,其余一律使用model(model往下看)。
4.entity:數(shù)據(jù)庫表字段與實體類屬性一一對應,字段下劃線,屬性小駝峰。
5.controller、service、mapper方法使用save、add、get、update、remove、set、exec等前綴,禁止使用select、delete、query等。
6.model: 是entity的擴展, 比如 entity/User 和 model/UserModel的關系如下:
@Data
class UserModel extends User {
//這里是擴展用戶的屬性
private int age;
public int getAge() {
//TODO 根據(jù)表字段birthday計算用戶的年齡
return age;
}
/**
* 用戶角色
*/
private List<Role> roles;
}
7.查詢類接口參數(shù)使用 {{modelName}}Query,如 OrderQuery,UserQuery,除了FeignClient 不允許使用 @RequestParam ...,操作類參數(shù)使用 {{entityName}}Model 比如 UserModel, SysModel,JobModel, ResumeModel。
示例:
//...controller
/**
* 獲取訂單列表
*/
@GetMapping("getOrderList")
public Object getOrderList(OrderQuery q) {
return orderService.getOrderList(q);
}
//...service
@Override
public PageInfo<OrderModel> getOrderList(OrderQuery q) {
PageHelper.startPage(q.getPageNum(), q.getPageSize());
List<OrderModel> list = baseMapper.getOrderList(q);
return new PageInfo<>(list);
}
//...mapper
//使用Provider可以替代xml形式,使用代碼形式進行動態(tài)sql拼接
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
@SelectProvider(type = OrderProvider.class, method = "getOrderList")
List<OrderModel> getOrderList(OrderQuery q);
class OrderProvider {
public String getOrderList(OrderQuery q) {
SQL sql = new SQL() {{
//動態(tài)sql
SELECT("id,order_number");
FROM("`order`");
if (q.getId() != null) {
WHERE("id>0");
}
ORDER_BY("create_time desc");
}};
return sql.toString();
}
}
}
結(jié)構(gòu)請看下圖:

代碼規(guī)范.png