1、sql语句
当多表联查使用left join 使用on作为条件
String sql = “select sp.dicexefuncname, d.orgid,d.personid,d.id,d.electionmeetid,d.sort,baseuser.id,baseuser.realname,
basic.dicsex,basic.birthdate,baseinfo.joinpartytime from d_h_commitresult d
LEFT JOIN s_p_personbasic_condition basic ON d.personid=basic.id
LEFT JOIN t_s_base_user baseuser on basic.id=baseuser.id
LEFT JOIN d_m_baseinfo baseinfo on basic.id=baseinfo.id
LEFT JOIN s_p_exefunction sp ON sp.personid=basic.ID WHERE d.sort=‘纪委’and electionmeetid=’”+electionmeetid+"’";
一旦使用left join 没有where条件时 左表会显示全部内容,而使用了where 只有满足where条件的记录才会显示,失去left join的意义
此时的条件应使用on
on条件在左关联时,不管如何都会显示左表的信息
2、单选框和下拉框的回显
不能像input输入框直接会显出后台传过来的值
使用js回显
单选框回显:
var issetcommit = '${election.issetcommit}';
if(issetcommit=='是'){
$('#issetcommit1').attr({
checked:true
});
}else{
$('#issetcommit2').attr({
checked:true
});
}
先取得值后通过js为单选框追加属性
下拉框回显:
$('#discipdesecnum').val('${election.discipdesecnum}');
通过js进行赋值
3、sql语句将某个属性的信息使用逗号连接
使用group_concat函数
select GROUP_CONCAT(数据库表的字段) from 表名;
4、算合计
datagrid的list<Map<String,Object>> 可以设定增加的顺序 list.add(0, sum);、
可以在map中放入新的键值对sum.put(“ctoralunitname”, “合计”);
合计时将每一列数据放入到一个中间数组中 将下一列数据与中间数组进行相加
Map<String, Object> sum = new HashMap<>();
Integer[] temp = new Integer[17];
for (Map<String, Object> map : list) {
Integer[] a1 = new Integer[17];
int i = -4;
for (String key : map.keySet()) {
if (key.equals("ctoralunitname") || key.equals("id")
|| key.equals("electoralunitid")
|| key.equals("electionid")
|| key.equals("electionstatus")) {
sum.put("ctoralunitname", "合计");
} else {
if (temp[i] == null) {
Integer a = (Integer) map.get(key);
temp[i] = a;
} else {
a1[i] = (Integer) map.get(key);
temp[i] = a1[i] + temp[i];
sum.put(key, temp[i]);
}
}
i++;
}
}
5、父页面调用子页面的方法
frame1.window.childFunction();
frame1为子页面的id
6、子页面调用父页面的方法
window.parent.del2(tr, personid);
7、sql case when then 语句
SELECT id,num,CASE num WHEN 1 THEN end_time1 WHEN 2 THEN end_time2 END AS end_time FROM examine ORDER BY end_time DESC
查询id num 当num为1时显示end_time1 当num为2时显示end_time2 最后都将以end_time降序展示
8、删除、增加datagrid的行
删除
function mydel(personid) {
var index = $("#disciplineList").datagrid("getRowIndex", personid);
var rows = $("#disciplineList").datagrid("getRows");
var tr = rows[index];
$("#disciplineList").datagrid("deleteRow", index);
window.parent.del2(tr, personid);
};
增加
function childtest(tr) {
$("#deleteList").datagrid("appendRow", tr);
}
9、拼的最长的sql语句
String sql = "select sp.dicexefuncname, d.orgid,d.personid,d.id,d.electionmeetid,d.sort,baseuser.id,baseuser.realname,basic.dicsex,basic.birthdate,baseinfo.joinpartytime
from d_h_commitresult d
LEFT JOIN s_p_personbasic_condition basic ON d.personid=basic.id
LEFT JOIN t_s_base_user baseuser on basic.id=baseuser.id
LEFT JOIN d_m_baseinfo baseinfo on basic.id=baseinfo.id
LEFT JOIN s_p_exefunction sp ON sp.personid=basic.ID
WHERE d.sort='委员'and electionmeetid='"+electionmeetid+"'";
10、replaceAll方法
if (StringUtil.isNotEmpty(optscope)) {
optscope = optscope.replaceAll(",", “,”);
将中文逗号替换成英文逗号