美文网首页
201120:searchable排序顺序+jdbc分页查询-分

201120:searchable排序顺序+jdbc分页查询-分

作者: 弹钢琴的崽崽 | 来源:发表于2020-11-20 21:24 被阅读0次

    一. searchable排序顺序

    实例代码

    searchable.addSort(Sort.Direction.ASC,"lostState");
    searchable.addSort(Sort.Direction.DESC, "createTime");
    

    这样放先根据createTime排再是lostState,放在上面的后排序

    二. searchable+jdbc分页查询

    paging()方法

    Page<MessageVo> paging = PersistentFactory.getJdbcDao().paging(sql, searchable, MessageVo.class, new Object[]{userId});
    List<MessageVo> messageVos = paging.getContent();
    

    三. 分页拿到的实体类需要转成vo对象

    PageImpl<ErticleVo>(voList, searchCondition.getPage(), page.getTotalElements());

    Page<Erticle> page = this.paging(searchCondition);
    if(page.getContent().size()>0){
        voList = getVoList(page,request);//转换成VO对象
    }
    return new PageImpl<ErticleVo>(voList, searchCondition.getPage(), page.getTotalElements());
    

    四. 未读消息查询

    两张表 消息表和签阅表,用户读消息后往签阅表增加消息id和用户id

    需求:查出未读消息

    查出消息表的消息id不在签阅表的数据即可 not in

    SELECT
            tm. ID,
            tm.MESSAGE_TYPE,
            tm.DATA_ID,
            tm.MESSAGE_TITLE,
            tm.CREATE_TIME,
            tm.LOST_TIME,
            tm.LOST_STATE,
            tm.CREATE_USER_ID
        FROM
            T_MESSAGE tm
        WHERE
            TM. ID NOT IN (
                SELECT
                    T .MESSAGE_ID
                FROM
                    T_MESSAGE_READ T
            )
        AND tm.CREATE_USER_ID != '8a748586723b0b0f017254fba99d0162'
        AND tm.DELETED = '0'
        AND tm.LOST_STATE = '1'
        ORDER BY
            tm.CREATE_TIME DESC
    

    五. nginx配置

    前端的包放在nginx/html下,配置location与服务器IP对应即可

    nginx.conf文件中

    server {
            listen       9999;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
        location /xmzygl/ {
                proxy_pass http://20.20.30.152:8088;
            }
    

    六. java 构造树

    树节点实体类TreeNode

    public class TreeNode {
        private String cid;
        private String cname;
        private String pid;
        private List nodes = new ArrayList();
    }
    

    传入根节点id即可

    sql1是获取根节点数据

    sql2是第二级节点数据,用递归去赋值即可

    public class TreeExtendUtils {
    
        public static TreeNode recursiveTree(String cid) {
            String sql1 = "SELECT CODE as cid,FULL_NAME as cname,UP_GOV_CODE pid FROM T_ORG_INFO where code ='"+cid+"'";
            List<TreeNode> treeNodeList = PersistentFactory.getJdbcDao().queryForList(sql1,TreeNode.class);
            //根据cid获取节点对象(SELECT * FROM tb_tree t WHERE t.cid=?)
            TreeNode node = treeNodeList.get(0);
            String sql2 = "SELECT CODE as cid,FULL_NAME as cname,UP_GOV_CODE pid FROM T_ORG_INFO where UP_GOV_CODE ='"+cid+"'";
            List<TreeNode> treeNodes= PersistentFactory.getJdbcDao().queryForList(sql2,TreeNode.class);
            //查询cid下的所有子节点(SELECT * FROM tb_tree t WHERE t.pid=?)
            List<TreeNode> childTreeNodes = treeNodes;
            for (TreeNode child : childTreeNodes) {
                TreeNode n = recursiveTree(child.getCid()); //递归
                node.getNodes().add(n);
            }
            return node;
        }
    }
    

    相关文章

      网友评论

          本文标题:201120:searchable排序顺序+jdbc分页查询-分

          本文链接:https://www.haomeiwen.com/subject/iopjiktx.html