formData-JSon,java解析Excle,获取父类泛型,spring整合jpa实现条件分页查询

来源:互联网 发布:软件行业就业形势 编辑:程序博客网 时间:2024/06/11 06:50
  • 本文为原创:欢迎转载学习。

    1 . java生成Excel分析:(可以参考官网)

创建HSSFWorkbook
创建HSSFSheet
创建Row
获取row填充数据:row.getCell(0).getStringCellValue()

@Action(value="uploadAreaInfo")    public String uploadAreaInfo() throws Exception{        List<Area> list = new ArrayList<Area>();        //利用poi的hssp格式解析        // 加载excel对象        HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));        //读取工作蒲第一个sheet        HSSFSheet sheet = wb.getSheetAt(0);        //读取工作蒲中的每一行的数据        for (Row row : sheet) {            //一行数据对应一个对象            if (row.getRowNum()==0) {                //跳过第一行                continue;            }            if (row.getCell(0)==null                     ||StringUtils.isBlank( row.getCell(0).getStringCellValue())) {                //跳过空行                continue;            }            //将每一行的数据            Area area = new  Area();            area.setId(row.getCell(0).getStringCellValue());            area.setProvince(row.getCell(1).getStringCellValue());            area.setCity(row.getCell(2).getStringCellValue());            area.setDistrict(row.getCell(3).getStringCellValue());            area.setPostcode(row.getCell(4).getStringCellValue());            list.add(area);        }        //调用业务层保存        areaService.save(list);        return NONE;    }
  • POI官网的链接地址:http://poi.apache.org/

    2 . 将表单的数据转换成json格式数据

$.fn.serializeJson = function() {    var serializeObj = {};    var array = this.serializeArray();    var str = this.serialize();    $(array).each(function() {        if(serializeObj[this.name]) {            if($.isArray(serializeObj[this.name])) {                serializeObj[this.name].push(this.value);            } else {                serializeObj[this.name] = [serializeObj[this.name], this.value];            }        } else {            serializeObj[this.name] = this.value;        }    });    return serializeObj;}

3.获取父类的泛型

        //动态获取当前类的父类的对象        Type type = this.getClass().getGenericSuperclass();                 ParameterizedType parameterizedType = (ParameterizedType) type;        //获取第一个泛型参数        Class<T> modelClass = (Class<T>)parameterizedType.getActualTypeArguments()[0];        try {            model = modelClass.newInstance();        } catch (Exception e) {            e.printStackTrace();        } 

4 . jquery easyUi的分页查询数据

//分页的数据    private Integer page;    private Integer rows;    public void setPage(Integer page) {        this.page = page;    }    public void setRows(Integer rows) {        this.rows = rows;    }    public Integer getPage() {        return page;    }    public Integer getRows() {        return rows;    }    protected <T> void pushPageInfo(Page<T> result){        Map<String,Object> map = new HashMap<>();        map.put("total", result.getTotalElements());        map.put("rows", result.getContent());        ActionContext.getContext().getValueStack().push(map);    }

5 . Spring整合jpa实现分页查询和条件查询代码截取

    //查询数据并分页显示    @Action(value="findAllArea",results = {@Result(name="success",type="json")})    public String findAllArea(){        //分页数据封装        Pageable pageable = new  PageRequest(page-1, rows);        //tiao条件封装        Specification<Area> specification = new Specification<Area>() {    @Override    public Predicate toPredicate(Root<Area> root, CriteriaQuery<?> query, CriteriaBuilder cb) {        System.out.println(root);        System.out.println(query);        System.out.println(cb);        //添加查询条件         List<Predicate> list = new ArrayList<>();        if (StringUtils.isNotBlank(area.getProvince())) {            Predicate p1 = cb.like(root.get("province")                        .as(String.class), area.getProvince()+"%");            System.out.println(root.get("province").as(String.class));        System.out.println(area.getProvince());            list.add(p1);                }        if (StringUtils.isNotBlank(area.getCity())) {            Predicate p2 = cb.like(root.get("city")                            .as(String.class), area.getCity()+"%");                    list.add(p2);                }        if (StringUtils.isNotBlank(area.getDistrict())) {            Predicate p3 = cb.like(root.get("district")                            .as(String.class), area.getDistrict()+"%");                    list.add(p3);                }                return cb.and(list.toArray(new Predicate[0]));            }        };        Page<Area> result =areaService.findAllAreaInfo(pageable,specification);        Map<String,Object> map = new HashMap<>();        map.put("total", result.getTotalElements());        map.put("rows", result.getContent());        ActionContext.getContext().getValueStack().push(map);        return SUCCESS;    }
原创粉丝点击