首页 > 其他分享 >分页查询,Record,map2entity工具类

分页查询,Record,map2entity工具类

时间:2022-11-04 14:11:57浏览次数:54  
标签:java return 分页 map2entity Record map obj import public

分页查询,Record,map2entity工具类

1.page

package com.WT.bigdata.dsjmh.api.utils;

import com.jfinal.plugin.activerecord.Record;

import java.util.List;

/**
 * 分页查询
 * @author lkx
 * @version 1.0
 * @date 2020/2/27
 */
public class Page {
    private List rows;
    private Long total = -1L;
    private Long totalPage ;
    private Integer pageNum;
    private Integer pageSize;

    public List getRows() {
        return rows;
    }

    public void setRows(List rows) {
        this.rows = rows;
    }

    public Long getTotal() {
        return total;
    }

    public void setTotal(Long total) {
        this.total = total;
    }

    public Long getTotalPage() {
        this.totalPage = (long) Math.ceil((double)total/pageSize);
        return totalPage;
    }

    public void setTotalPage(Long totalPage) {
        this.totalPage = totalPage;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Page() {
    }

    public Page(com.jfinal.plugin.activerecord.Page<Record> pageR) {
        this.rows= RecordUtils.toMap(pageR.getList());
        this.total=(long)pageR.getTotalRow();
        this.pageNum=pageR.getPageNumber();
        this.pageSize=pageR.getPageSize();
    }
}

2.Record

package com.bcht.bigdata.dsjmh.api.utils;

import com.bcht.ms.commons.utils.Page;
import com.jfinal.plugin.activerecord.Record;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Record工具
 * @author lkx
 * @version 1.0
 * @date 2020/2/27
 */
public class RecordUtils {

    public static List<Map> toMap(List<Record> listR){
        List<Map> list = new ArrayList<Map>();
        if(listR!=null){
            for(Record record : listR){
                list.add(toMap(record));
            }
        }
        return list;
    }

    public static Map toMap(Record record){
        if(record!=null){
            return record.getColumns();
        }
        return null;
    }

    public static Page toMap(com.jfinal.plugin.activerecord.Page<Record> pageR) {
        Page page = new Page();
        page.setRows(RecordUtils.toMap(pageR.getList()));
        page.setTotal((long)pageR.getTotalRow());
        page.setPageNum(pageR.getPageNumber());
        page.setPageSize(pageR.getPageSize());
        return page;
    }
}

3.map2entity

package com.bcht.bigdata.dsjmh.api.utils;

/**
 * ClassName: MapToEntity <br/>
 * Description: <br/>
 * date: 2019/7/31<br/>
 *
 * @since JDK 1.8
 */

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Modifier;
import java.util.Date;
import java.util.Map;

/**
 * map转实体
 */
public  class MapToEntity {
             /** map
              * 转实体类
          * @param clazz
          * @param map
          * @param <T>
          * @return*/
    public  static  Object  mapToObject(Class clazz, Map<String,String> map) throws IntrospectionException, IllegalAccessException, InstantiationException {

        BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
        Object obj = clazz.newInstance();
        // 给 JavaBean 对象的属性赋值
        PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
        for (int i = 0; i < propertyDescriptors.length; i++) {
            PropertyDescriptor descriptor = propertyDescriptors[i];
            String propertyName = descriptor.getName();

            if (map.containsKey(propertyName)) {
                Object value = map.get(propertyName);
                if ("".equals(value)) {
                    value = null;
                }
                Object[] args = new Object[1];
                args[0] = value;
                try {
                    descriptor.getWriteMethod().invoke(obj, args);
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                }

            }
        }
        System.out.println(obj.toString());
        return  obj;
    }


    /**
     * Map转成实体对象
     *
     * @param map   map实体对象包含属性
     * @param clazz 实体对象类型
     * @return
     */
    public static <T> T map2Object(Map<String, Object> map, Class<T> clazz) {
        if (map == null) {
            return null;
        }
        T obj = null;
        try {
            obj = clazz.newInstance();

            Field[] fields = obj.getClass().getDeclaredFields();
            for (Field field : fields) {
                int mod = field.getModifiers();
                if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                    continue;
                }
                field.setAccessible(true);
                String filedTypeName = field.getType().getName();
                if (filedTypeName.equalsIgnoreCase("java.util.date")) {
                    String datetimestamp = String.valueOf(map.get(field.getName()));
                    if (datetimestamp.equalsIgnoreCase("null")) {
                        field.set(obj, null);
                    } else {
                        field.set(obj, new Date(Long.parseLong(datetimestamp)));
                    }
                } else {
                    field.set(obj, map.get(field.getName()));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return obj;
    }
}

标签:java,return,分页,map2entity,Record,map,obj,import,public
From: https://www.cnblogs.com/atao-BigData/p/16857548.html

相关文章

  • java分页查询后端代码
    packagecom.example.demo;importjava.util.List;importorg.apache.ibatis.annotations.Delete;importorg.apache.ibatis.annotations.Insert;importorg.apache.......
  • C# .Net MVC Razor 视图静态分页导航栏生成器
    这里贴出3个重要组成部分1.分页导航栏主算法代码(包括@Html扩展方法)2.HTML页面调用代码(包括导航栏样式)3.Controller控制器代码4.测试路径:http://www.****.com/EBusines......
  • ElasticSearch深度分页并可以小幅度跳页的实现
    目录背景环境代码添加依赖配置创建实体服务层思路简述后续背景最近项目上有个日志采集,我作为接收端接收udp发送过来的报文数据缓存到es上,然后查询es上的数据分页展示。但......
  • MySQL连接分页查询问题
    问题两表连接查询分页,如果不进行排序,则分页不准确,这将导致第一页出现的数据会在后几页再次出现,而且每次查询第一页结果都不一致解决连接查询分页必须按主键分页才能保证......
  • layui 分页-列表数据删除重新渲染分页问题
    newVue({el:'#jobIndex',data:{userInfo:{},jobList:[],jobForm:{username:'',password:'',......
  • spring-boot-2.0.3源码篇 - pageHelper分页,绝对有值得你看的地方
    开心一刻说实话,作为一个宅男,每次被淘宝上的雄性店主追着喊亲,亲,亲,这感觉真是恶心透顶,好像被强吻一样更烦的是我每次为了省钱,还得用个女号,跟那些店主说:“哥哥包邮嘛么......
  • RecordDispaly控件上显示Blob分析结果的方法
    这里写一下另一种方法,即从CreateLastRunRecord().SubRecords[0]中将所有的图形Record提取出来,添加到display控件上,以下为代码:此帖售价 2 金币,已有 56 人购买 [记录......
  • drf-分页器的使用
    -----全局配置分页器setting.pyREST_FRAMEWORK={#全局分页设置"DEFAULT_PAGINATION_CLASS":"rest_framework.pagination.PageNumberPagination","PAGE_SI......
  • C# sqlserver 分页查询
     C#sqlserver分页查询#region----商家列表查询请求类----///<summary>///商家列表查询请求类///</summary>publicclassSellerListRequest......
  • C# Sqlserver 分页查询-微商城
      C#Sqlserver分页查询-微商城#region----分页查询订单流水状态----///<summary>///分页查询订单流水状态///</summary>///......