遵从java编码规范,目的做到代码规范、统一
鲁曾说过:只要代码规范了工作就完成了一半。。。
0.遵从java编码规范,类名大驼峰,方法、属性、变量小驼峰。
1.注意出现单词拼写,错误示例 getUserByMobileandName()。
2.不允许出现变量、类名、方法名出现下划线。
3.除了没有固定形式的返回可以用map,其余一律使用model(model往下看)。
4.entity:数据库表字段与实体类属性一一对应,字段下划线,属性小驼峰。
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 根据表字段birthday计算用户的年龄
return age;
}
/**
* 用户角色
*/
private List<Role> roles;
}
7.查询类接口参数使用 {{modelName}}Query,如 OrderQuery,UserQuery,除了FeignClient 不允许使用 @RequestParam ...,操作类参数使用 {{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形式,使用代码形式进行动态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() {{
//动态sql
SELECT("id,order_number");
FROM("`order`");
if (q.getId() != null) {
WHERE("id>0");
}
ORDER_BY("create_time desc");
}};
return sql.toString();
}
}
}
网友评论