jeecgboot的实战总结


jeecgBoot项目总结

Controller

首先controller需要对JeecgController的继承,而且是Table是持久化的对象,Service是服务层。

@Api(tags="...")
@RestController
@RequestMapping("...")
@Slf4j
public class Controller extends JeecgController {
    /**
	 * 	请求参数是@RequestBody,进行分页查询
	 */
	@AutoLog(value = "...")
	@ApiOperation(value="...", notes="...")
	@PostMapping(value = "/list")
	public Result listPage(@RequestBody @Validated Object object) {
		
		Page page = service.listPage(object);
		return Result.OK(page);
	}
    
    
    /**
	 * 分页列表查询
	 * 
	 * @param object
	 * @param pageNo
	 * @param pageSize
	 * @param req
	 * @return
	 */
	@GetMapping(value = "/list")
	public Result<?> queryPageList(Object object, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
			@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) {
		QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(object, req.getParameterMap());
		Page page = new Page(pageNo, pageSize);
        //queryWrapper实体对象封装操作类, 这个page是mybatisplus封装好的。
		IPage pageList = sService.page(page, queryWrapper);
        return Result.ok(pageList);
	}
    
     /**
     * 导出excel
     *
     * @param
     * @param
     */
    @AutoLog(value = "...")
    @ApiOperation(value = "...", notes = "...")
    @PostMapping(value = "/...")
    public ModelAndView export(HttpServletRequest request, Object object) {
        return super.exportXls(request, object, Object.class, "");
    }
    
   
    
}



Service

接口层继承了IService

,这个Table是持久层的对象

public interface service extends IService {
    //分页查询
    Page listPage(Object object);
    //
}

ServiceImpl

接口的实现层

从mapper查询的是List,直接使用page.setRecords(list);就可以实现分页的功能,

@Override
public Page listPage(Object object) {
    Page page = new Page(vo.getPageNo(),vo.getPageSize());
    List
list = Mapper.listPage(page, object); return page.setRecords(list); }

mapper interface

mapper层的接口

特点:继承了BaseMapper,然后table是持久层的对象

public interface Mapper extends BaseMapper
{ List
listPage(Page page, Object object); List listByParamPage(Page page, @Param("xml的sql需要用到的字段") String name); }

XML

xml层的SQL

参考:

id: tips1

like conca :tips2

where 1 = 1 : tips3


<?xml version="1.0" encoding="UTF-8"?>



    

DAO

持久化对象的特点:

@Data
@TableName("...")  //...是数据库的表的名字
@Accessors(chain = true) 
@EqualsAndHashCode(callSuper = false) 
@ApiModel(value="...", description="...")
public class Table implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /**主键*/
	@TableId(type = IdType.ASSIGN_ID) //只有当插入对象ID 为空,才自动填充,分配ID (主键类型为number或string), 默认实现类
    @ApiModelProperty(value = "...")
    private String id;
    
    /**时间格式*/
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd") //把英文的时间转换成中文的格式
    @ApiModelProperty(value = "...")
    private Date time;
    
 	/**导出Excel格式*/
    @Excel(name = "...", width = 15) //设置导出时的列名,与列的宽度
    @ApiModelProperty(value = "...")
    private String ...;
    
}