zoukankan      html  css  js  c++  java
  • datagrid 查询关联sql

    1.A表字段:id,name;B表字段:id,name,fid(A表外键),现查询A表和B表的所有数据并且查询条件A,B都有,在前台页面list显示
    
    2.后台方法:
    
    @RequestMapping(params = "datagrid_zh")
    public void datagrid_zh(CarRouteEntity ldcHandbookOrder,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
    CriteriaQuery cq = new CriteriaQuery(CarRouteEntity.class, dataGrid);
    //查询条件组装器
    org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, ldcHandbookOrder);
    try{
    //自定义追加查询条件
    }catch (Exception e) {
    throw new BusinessException(e.getMessage());
    }
    cq.add();
    String tiaojian="";
    String name=request.getParameter("name");   
    
    if(StringUtils.isNotEmpty(name)) {
    tiaojian+=" and a.name>= '"+name+"'";
    
    }  
    String sql="select a.id,a.name,b.name as bname from Aa LEFT JOIN B b on a.id=b.fid where 1=1 "+tiaojian;
    List<Map<String, Object>> map=jdbcTemplate.queryForList(sql);
    dataGrid.setTotal(map.size());
    List<Map<String,Object>> maplist=systemService.findForJdbc(sql +" limit "+(dataGrid.getPage()-1)*dataGrid.getRows()+","+dataGrid.getRows(), null);
    
    --oracle用法

      

    //一页几行
    int row = dataGrid.getRows();
    //当前页
    int page = dataGrid.getPage();
    //开始行
    int firstRow = row*(page-1)+1; 
    //截止行
    int endRow=firstRow+row; 
    
    List<Map<String,Object>> maplist=systemService.findForJdbc(sql +"where myno >="+firstRow+" and myno<"+endRow+" order by CREATE_DATE desc ", null);
    dataGrid.setResults(maplist); 
    for (int i=0;i<maplist.size();i++) {
    // 此为针对原来的行数据,拓展的新字段
    
    Map<String,Object> map = maplist.get(i); 
    sql = " select count(1) "
    + " from ldc_invt_list a where a.ldc_headid = '"+ map.get("id")+"' and rownum <= 1 ";
    int queryForInt = jdbcTemplate.queryForInt(sql);
    if(queryForInt==1){
    sql = " select goodswuliao,gds_Nm,LAWF_UNITCD_NAME,dcl_Unitcd_Name,dcl_Currcd ||' '|| dcl_Currcd_Name dclCurrcdName, "
    + " natcd ||' '|| natcd_Name natcdName ,putrec_Seqno putrecSeqno,gds_Mtno gdsMtno "
    + "from ldc_invt_list a where a.ldc_headid = '"+ map.get("id")+"' and rownum <= 1 "; 
    Map<String, Object> queryForMap = jdbcTemplate.queryForMap(sql); 
    map.put("goodswuliao", queryForMap.get("goodswuliao"));
    map.put("gdsNm", queryForMap.get("gds_Nm"));
    map.put("lawfUnitcdName", queryForMap.get("LAWF_UNITCD_NAME"));
    map.put("dclUnitcdName", queryForMap.get("dcl_Unitcd_Name"));
    map.put("dclCurrcdName", queryForMap.get("dclCurrcdName"));
    map.put("natcdName", queryForMap.get("natcdName"));
    
    
    map.put("putrecSeqno", queryForMap.get("putrecSeqno"));
    map.put("gdsMtno", queryForMap.get("gdsMtno"));
    
    maplist.set(i, map);
    }
    }
    

      

    dataGrid.setResults(maplist);
    //下面合计项 orderBizhi放在该字段下面

    dataGrid.setFooter("orderTax,orderse,orderBizhi:合计");
    TagUtil.datagrid(response, dataGrid);
    }
    
    3.前台页面
    
    <t:datagrid name="??" checkbox="true" pagination="true" pageSize="10"
    sortOrder="desc"
    btnCls="bootstrap btn btn-success btn-xs"  
    fitColumns="false" title=""
    actionUrl="??.do?datagrid_zh"
    idField="id" fit="true" queryMode="group">
    <t:dgCol title="id" field="id" hidden="true" queryMode="group" width="120"></t:dgCol>
    <t:dgCol title="A表名称" field="name"   query="true" width="120"></t:dgCol>
    <t:dgCol title="B表名称" field="bname"   query="true" width="120"></t:dgCol>
    </t:datagrid>
    

      

  • 相关阅读:
    ubuntu apt 命令相关
    linux 常用命令
    sqli-labs 通关详解(sql注入知识点整理)
    运维手册2---查看机子的系统信息
    运维手册1---ssh命令:使用密钥文件进行登陆
    Java中的==和equals,常量池
    Java Persistence
    VSCode常用插件汇总
    VSCode常用插件之Auto Rename Tag使用
    ESLint 使用指南
  • 原文地址:https://www.cnblogs.com/xueblvip/p/13445330.html
Copyright © 2011-2022 走看看