工作中小细节总结(四)

60  下载来账时,防止重复下载   使用静态的map (可以优化为ConcurrentHashMap)


    下载类
   属性
private static Map<String, CheckRunning> checkObj = new HashMap<String, CheckRunning>();
方法
if (null == checkObj.get(inActId))
{
checkObj.put(inActId, new CheckRunning());
}
CheckRunning curCheck = checkObj.get(inActId);
if (curCheck.getIsRunning())
{
throw new Exception(inActId + "账号的来账信息正在下载...请不要重复提交!");
}

try {

curCheck.setIsRunning(true);
doBusiLogic();

} catch (Exception e) {
throw e;
}
finally{
curCheck.setIsRunning(false);
}
辅助类  CheckRunning.java
public class CheckRunning
{
private boolean isRunning = false;

public boolean getIsRunning()
{
return isRunning;
}

public void setIsRunning(boolean isRunning)
{
this.isRunning = isRunning;
}

}

62  定时器编写
    1、首先在tb_scheduler_job表中增加记录
    2、编写定时器线程类 需要实现接口IJob

63  在指定目录下创建文件
File file = new File("E:/test.text");//
if (!file.exists()) {
file.createNewFile();
}

64 服务器问题引起的 
    通过SSH工具访问linux服务器
有一个进程占用了 11120端口
was 启动csp Socket 没起起来

linux 下查看端口 :netstat -an|grep -w 11120     
                   lsof -i:11120
   杀死进程 :kill -9 XXX     kill XXXX

65 browse data 浏览数据

66 IBM-> WebSphere-> Application Server
   
   重启服务器  登录系统后, 服务器->服务器类型->websphere Application server  勾选服务器 进行 停止,启动操作
   查看日志                 故障诊断->日志和跟踪 点击server,在记录和跟踪页面 选择JVM日志 -》运行时 查看日志
   重启wars                 应用程序->应用程序类型   勾选wars 进行操作
   
   系统管理-> 节点  同步操作

67 远程协助命令 mstsc 

68 借Debit
   贷Credit
    借方(左)D          贷方(右)C
   ——————————————————————————————————————
     资产的增加    |    负债的增加
负债的减少    |    资产的减少
费用的发生    |    收益的发生
  |
    有借必有贷,借贷必相等

69 java 填充数据
    Arrays.fill方法
int [][] nums =  new int[2][4];

Arrays.fill(nums[1],3,4 ,1);
Arrays.fill(nums[0],2,3, 5);

70  ORACLE 数据分组统计时,可以使用GROUPING SETS 操作符 可以合并多个分组结果
select t.ac_no_ds        as 代收帐号,
       t.account_in_date as 达帐日期,
       t.total_count     as 明细汇总笔数,
       t.total_amt       as 汇总金额,
       t1.unit_no        as 单位编码,
       t1.unit_name      as 单位名称,
       t1.pn_no          as 通知书号码,
       t1.payer          as 缴款人,
       t1.paid_date      as 缴款日期,
       t1.ard_amt        as 缴款金额,
       t2.ci_no          as 项目编码,
       t2.ci_name        as 项目名称,
       t2.total_amt      as 收费金额
  from qs_qs_manage_total t
  left join qs_qs_manage_detail t1 on t.dzjk_no = t1.dzjk_no
  left join qs_qs_manage_fee_detail t2 on t1.id = t2.main_id
 where t.ac_no_qs in ('758858040557', '748458858345')
   and t.total_amt <> 0
   and t.hb_date between '20130506' and '20130507'
 group by grouping sets((t.id, t.ac_no_ds, t.account_in_date, t.total_count, t.total_amt),
                         (t.id, t1.id, t1.unit_no, t1.unit_name, t1.pn_no, t1.payer, t1.paid_date, t1.ard_amt),
                         (t.id, t1.id, t2.ci_no, t2.ci_name, t2.total_amt))
 order by t.id, t.ac_no_ds, t1.id desc, t2.ci_no desc
71 JavaScript和JSON之间的联系  eval()
   var postUrl = "<%=path%>/busiprintinfo/saveBusiPrintInfo.do?";
var postValue = "method=confirm&userId="+userId+"&userPwd="+userPwd;
var ret = postData(postUrl,postValue,"txt");

responseObj = eval("(" + ret + ")");

72  查看/删除共享文件夹
    net share 查看
    net share [{ShareName|Drive:Path} /delete] 删除 例如 net share D$ /delete 

73  List 反转    反转指定列表中元素的顺序。static void reverse(List<?> list) 
    CollectionsCollections.reverse(list);

74  Excel 导出
import jxl.Workbook;
import jxl.format.Border;
import jxl.format.BorderLineStyle;
import jxl.format.UnderlineStyle;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

        一、创建工作簿
二、创建新的一页
三、构造表头  (合并单元格-mergeCells 设定格式- WritableFont/WritableCellFormat  创建label-Label 添加单元格sheet.addCell(Label))
四、创建要显示的内容
五、将内容写入输出流中,并关闭输出流

75  FTP连接不上
  IE-》internet选项 -》被动连接勾掉

76  SQL 插入多张表 根据一个查询更新多张表
  insert all 
     when printed = '1' and procDate >= '20150101' 
       then into td_batch_head 
     when printed = '1' and procDate < '20150101' 
  then into td_batch_head_temp2 
else into td_batch_head_temp1 
  select t.serial_no,
         t.bank_no,
         t.unit_no,
         t.unit_name,
         t.summary,
         t.is_print printed,
         t.proc_date procDate,
         t.total_count,
         t.total_amt,
         t.bank_recv_date,
         t.bank_recv_time,
         t.bank_success_count,
         t.bank_success_amt,
         t.bank_fail_count,
         t.bank_fail_amt,
         t.bank_send_date,
         t.bank_send_time,
         t.finance_total_count,
         t.finance_send_date,
         t.finance_send_time,
         t.oes_main_id,
         t.send_state,
         t.ac_no_ds,
         t.kft_main_id
    from td_batch_head_temp t

77 开机启动 
    进入路径C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup-将sametime快捷方式粘贴至此-即可开机自动启动 

78 oracle 获取当前时间和日期
   to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss')

79 oracle 自动生成Bean
  小技巧: 在编写Bean类和Form类的私有变量时,如数据库表字段比较多,则可以利用数据库提供的数据字典
  编写SQL语句来动态生成Java代码。这样做比较快速,也不用担心字段的对应规范问题。
  将代码copy至Java类中后,如有出入,可手工调整。
  比如,在Oracle中就可以通过执行如下SQL来动态生成定义变量的Java代码:


SELECT 'private ' ||
       DECODE(A.DATA_TYPE, 'NUMBER', 'BigDecimal ', 'String ') ||
       SUBSTR(LOWER(A.COLUMN_NAME), 1, 1) ||
       SUBSTR(REPLACE(INITCAP(REPLACE(A.COLUMN_NAME, '_', ' ')), ' ', ''),
              2) || ';//' || B.COMMENTS JAVA_MEMBER_DEFINE
  FROM ALL_TAB_COLUMNS A, ALL_COL_COMMENTS B
 WHERE A.TABLE_NAME = B.TABLE_NAME
   AND A.COLUMN_NAME = B.COLUMN_NAME
   AND A.TABLE_NAME = UPPER('TABLE_NAME')
 ORDER BY COLUMN_ID;


 
 SELECT case when a.COLUMN_ID = 1 then 'sql.append(" SELECT T.'
       ||A.COLUMN_NAME
       ||', ");'
        when a.COLUMN_ID <> 1 and a.COLUMN_ID<>a. then 'sql.append("        T.'
         ||A.COLUMN_NAME
       ||', ");'
       --最后一个','需要手动剔除
       end
  FROM ALL_TAB_COLUMNS A, ALL_COL_COMMENTS B
 WHERE A.TABLE_NAME = B.TABLE_NAME
   AND A.COLUMN_NAME = B.COLUMN_NAME
   AND A.TABLE_NAME = UPPER('td_ydjfinejrn')
 ORDER BY COLUMN_ID;
80 webservice 
   xml解析入库
   关键技术 xsd
   SOAP:

猜你喜欢

转载自blog.csdn.net/qq_35079856/article/details/77141386