手记

实习开发过程中总结的小知识点

1.sql查询的相关问题

  //sql中将传来的参数以键值对的形式存到Map中,进行如下遍历赋值
  @Override
    public List<T> getListBySQL(String sqlString, Map<String,Object> map) {
        Query query = this.getSession().createSQLQuery(sqlString);
        if (map != null)
        {
            for(Entry<String, Object> entry : map.entrySet()) {  
                query.setParameter(entry.getKey(),entry.getValue());
            } 
        }
        return query.list();
    }

      //关于sql注入按以下方式注入值
      //@Override
    public String getHql(City city) {
        String hql = "from City c where c.isDeleted = 0 ";
        if (CommonUtils.strVerify(city.getCode())) {
            hql += " and c.code like :code ";
        }
        if (CommonUtils.strVerify(city.getName())) {
            hql += " and c.name like :name ";

        }
        if (Constans.NO.equals(city.getShowOldCity())) {
                       //()可以是数组或者是集合
            hql += " and c.code not in (:showOldList)";
        }
        return hql;
    }

2.echarts图表

3.sql优化问题

4.乱码问题

5.前端页面问题
关闭子页面同时刷新父页面

数据库对象表设置主键的两种方式


存到数据库的数据为下面的格式

外键的设置方式

当对象中存在日期类型的字段,则在前台添加一个对象的数据的时候,数据传到后台时,将字符串的时间转换成日期类型的时间

/**
     * 
     * 将前台传过的日期的字符串转换成日期类型的
     * @param WebDataBinder
     * @return
     * @throws Exception 
     */

    @InitBinder
    protected void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
    }

后台将日期类型的数据转字符串类型的数据传给前台

//工具类
package com.im.license.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor {  
    private String format ="yyyy-MM-dd";  

    public JsonDateValueProcessor() {  
        super();  
    }  

    public JsonDateValueProcessor(String format) {  
        super();  
        this.format = format;  
    }  

    @Override  
    public Object processArrayValue(Object paramObject,  
            JsonConfig paramJsonConfig) {  
        return process(paramObject);      
    }  

    @Override  
    public Object processObjectValue(String paramString, Object paramObject,  
            JsonConfig paramJsonConfig) {  
        return process(paramObject);  
    }  

    private Object process(Object value){  
        if(value instanceof Date){
            if(value==null||value.equals("")){
                return "";
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);    
            return sdf.format(value);  
        }    
        return value == null ? "" : value.toString();    
    }  

}  

//后台传前台的json字符串转换日期的方法(对应java类的代码,如何调用)
            JsonConfig jsonConfig=new JsonConfig();
            jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
            return JSONObject.fromObject(pageInfo,jsonConfig).toString();
//pageInfo是一个对象

前台js实现表格中td数据相加,相当于合计的功能

        <table class="table-data" id="tableId">
        <thead>
            <tr>
                <th>地区</th>
                <th>类别</th>
                <th>单位</th>
                <th>本期</th>
                <th>去年上期</th>
                <th>环比(%)</th>
            </tr>
         </thead>
         <tbody>
         <c:if test="${repotLists.size()>0}">
         <tr>
         <td>全国总数</td>
         <td>${type}</td>
         <td>  <c:if test="${type=='日均客流量'}">
                                          人
                </c:if>
                 <c:if test="${type=='经营面积'}">
                                        平方米                      
                </c:if>
                 <c:if test="${type=='营业额'}">
                                       万元                       
                </c:if>
                 <c:if test="${type=='用电量'}">
                                       千瓦时                      
                </c:if>
                 <c:if test="${type=='用水量'}">
                                         立方米                       
                </c:if>
                 <c:if test="${type=='门店在岗职工(不含厂商促销员)数量'}">
                                          人                              
                </c:if></td>
         <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}"></a></td>
         <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}"></a></td>
         <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}"></a></td>
         </tr>
         </c:if>
          <c:forEach var="repotLists" items="${repotLists}">
            <tr><td>${repotLists.name}</td>
                <td>${type}</td>
                <td>
                 <c:if test="${type=='日均客流量'}">
                                          人
                </c:if>
                 <c:if test="${type=='经营面积'}">
                                        平方米                      
                </c:if>
                 <c:if test="${type=='营业额'}">
                                       万元                       
                </c:if>
                 <c:if test="${type=='用电量'}">
                                       千瓦时                      
                </c:if>
                 <c:if test="${type=='用水量'}">
                                         立方米                       
                </c:if>
                 <c:if test="${type=='门店在岗职工(不含厂商促销员)数量'}">
                                          人                              
                </c:if>
                </td>
                <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}&name=${repotLists.name}">${repotLists.jtype}</a></td>
                <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}&name=${repotLists.name}">${repotLists.qtype}</a></td>
                <td><a href="#/report/reportTotalByData?type=${enlishType}&year=${year}&format=${format}&name=${repotLists.name}">${repotLists.fyear}</a></td>
            </tr>
         </c:forEach>
            </tbody>
        </table>
<script type="text/javascript">
        $(document).ready(function(){
                var totalOne=0;
                var totalTwo=0;
                var totalThree=0;
                $("#tableId").find("tbody").find("tr").not($("#tableId").find("tbody").find("tr:first")).each(function(){
                    totalOne+=parseFloat($(this).find("td").eq(3).find("a").eq(0).html());
                    totalTwo+=parseFloat($(this).find("td").eq(4).find("a").eq(0).html());
                });
                if (totalTwo!=0) {
                     totalThree=((totalOne-totalTwo)/totalTwo);
                }
                $("#tableId").find("tbody").find("tr:first").find("td").eq(3).find("a").eq(0).html(totalOne);
                $("#tableId").find("tbody").find("tr:first").find("td").eq(4).find("a").eq(0).html(totalTwo);
                $("#tableId").find("tbody").find("tr:first").find("td").eq(5).find("a").eq(0).html(totalThree);
        });
</script> 
6人推荐
随时随地看视频
慕课网APP