实习开发过程中总结的小知识点
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人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦