21. input 使用disable Form拿不到值 需改为readonly
22. 逻辑优化
1. 解析装箱excel时,不要开着数据库连接进行excel解析;
2. 针对大数据量的excel,不要全部解析完成后才一并导入数据库,需要解析一部分导入一部分;
优化后的处理逻辑:
1.
try{
打开数据库连接,
开启数据库事务,
将两个excel文件名称信息导入bic_cf_file_record中,
关闭数据库事务;
}
catch (Exception e)
{
如果插入异常,catch主异常后,判断是主键或索引冲突后,
重新包装异常:Exception("导入的文件已存在,不容许重复导入");
}
finally
{
关闭数据库连接
}
2. 将装箱excel解析到list中;
try{
打开数据库连接;
将装箱list的批量插入的数据库中;
}
finally
{
关闭数据库连接
}
3. 循环解析装盒excel中的sheet
for {
3.1 解析一个sheet;
3.2 进行数据保存操作
{
开启数据库连接;
保存数据;
}finlly{
关闭数据库连接;
}
}
4. 如果在保存数据过程中发生异常,删除之前保存的文件信息,以及数据。
23. 数据库操作尽量放在一起
24. 多个数据时尽量使用批量插入方法
25. jstl标签中EL表达式不能用
解决办法:<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
需使用高版本
26. exception 对象仅在错误处理页面中才有效 isErrorPage = true
27. 重定向
response.sendRedirect("页面");
28. Ctrl + Alt + H 查找调用该方法的地方
29. Ctrl + H 查找
30. Form不需要重新set回去。。。。 待确认
31 Ctrl + F3 列出方法和变量
32 Ctrl + F4 回退方法至调用地方
33 REGEXP_REPLACE(Tt.USAGE_NAME || Tt.SUMMARY || Tt.REMARK ||Tt.TRAN_PS, '\D', '')
正则表达式 \D 查找非数字字符。
instr(REGEXP_REPLACE(Tt.USAGE_NAME || Tt.SUMMARY || Tt.REMARK ||
Tt.TRAN_PS,
'\D',
''),
substr(t.jrnlno, 0, LENGTH(T.JRNLNO) - 3)) > 0
字符串连接, 去掉所有非数字的字符,且包含交易流水号去掉后3位
34 DECODE(T.TYPE,1,'转帐',2,'刷卡','9','其他')
35 ORDER BY T.RISK_LEVEL, DECODE(T.AMOUNT_TYPE, 'X', '3', 'C', '1', 'S', '2','F', '4') ;
36
SELECT t.AMOUNT_CODE 编号,
t.CUS_CODE 公司编号,
t.CUS_NAME 公司名称,
t.BLOC_CODE 集团号 ,
DECODE(T.AMOUNT_TYPE, 'X', '协议额度', 'C', '客户', 'S', '单笔','F', '分额度') "类型",
DECODE(T.RISK_LEVEL, 'R001', '一般', 'R002', '低', 'R003', '类低') "风险级别",
SUM(T.AMOUNT_VALUE) "批复额度",
SUM(T.AMOUNT_ALLOT) "分配额度",
SUM(T.AMOUNT_OCCUPY) "占用额度",
SUM(t.AMOUNT_CURR) 币别,
SUM(T.AMOUNT_UNOCCUPY) "可用/剩余",
SUM(T.AMOUNT_USED) "业务余额",
SUM(T.AMOUNT_FREEZE) "冻结金额"
FROM AMOUNT_DETAIL T
WHERE T.CUS_CODE = '247129714'
AND T.AMOUNT_TYPE IN ('X', 'C', 'S','F')
AND t.RISK_LEVEL = 'R001'
GROUP BY ROLLUP((t.AMOUNT_CODE, t.CUS_CODE, t.CUS_NAME,t.BLOC_CODE,DECODE(T.AMOUNT_TYPE, 'X', '协议额度', 'C', '客户', 'S', '单笔','F', '分额度')
,DECODE(T.RISK_LEVEL, 'R001', '一般', 'R002', '低', 'R003', '类低')))
37. 编码
java.net.URLEncoder.encode(string, encodeScheme);
38. 防止乱码
response.addHeader("Content-Disposition", "attachment;filename=" + new String((reportNm + ".xls").getBytes(), "iso-8859-1"));
39 超链接到明细页面
<td class="whiteBG" align="center" height="25">
<a href="#" class="underline" style="color: red;"
onclick="detail('<c:out value="${bean.tran_flow_no}"/>', '<c:out value="${bean.tran_date}"/>');"> <c:out value="${bean.tran_flow_no}" />
</a>
</td>
40 设置返回链接
ActionHelp.setCurrentLink(request, "bookListRestitutes");