亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java高并發秒殺API之業務分析與DAO層

  • 靈活使用insert ignore奇淫巧技
    查看全部
  • 從這節課開始看,

    本節概括了一些框架特性

    Spring IOC整合Service

    查看全部
    0 采集 收起 來源:相關技術介紹

    2020-04-01

  • public?class?ResortByDel?{
    ????private?static?String?BIG_FILE_NAME?=?"D:\\test1.txt";
    ????private?static?Integer?BATCH_SIZE?=?100;
    ????private?static?String?LINE_SEPARATOR?=?",";
    ????private?static?String?SORT_FILE_NAME?=?"D:\\test2.txt";
    
    ????private?static?List<String>?separateFile()?{
    ????????List<String>?fileNameList?=?new?ArrayList<>();
    ????????try?(BufferedReader?reader?=?new?BufferedReader(new?FileReader(BIG_FILE_NAME)))?{
    ????????????int?index?=?0;
    ????????????List<String>?batchLineList?=?new?ArrayList<>(BATCH_SIZE);
    ????????????String?line;
    ????????????while?((line?=?reader.readLine())?!=?null?||?batchLineList.size()?>?0)?{
    ????????????????if?(line?!=?null)?batchLineList.add(line);
    
    ????????????????if?(batchLineList.size()?==?BATCH_SIZE?||?(line?==?null?&&?batchLineList.size()?>?0))?{
    ????????????????????//?內容排序
    ????????????????????batchLineList.sort((a,?b)?->?a.compareTo(b));
    ????????????????????//?寫小文件
    ????????????????????String?fileName?=?BIG_FILE_NAME?+?".tmp."?+?index++;
    ????????????????????try?(FileWriter?tmpWriter?=?new?FileWriter(fileName))?{
    ????????????????????????for?(String?val?:?batchLineList)?{
    ????????????????????????????tmpWriter.write(val?+?"\r\n");
    ????????????????????????}
    ????????????????????}
    ????????????????????fileNameList.add(fileName);
    ????????????????????batchLineList.clear();
    ????????????????}
    ????????????}
    
    ????????}?catch?(IOException?e)?{
    ????????????e.printStackTrace();
    ????????}
    ????????return?fileNameList;
    ????}
    
    ????private?static?void?mergeFile(List<String>?fileNameList)?{
    ????????Map<BufferedReader,?String>?map?=?new?HashMap<>();
    ????????String?preStr?=?null;
    ????????try?(FileWriter?writer?=?new?FileWriter(SORT_FILE_NAME))?{
    ????????????for?(String?fileName?:?fileNameList)?{
    ????????????????BufferedReader?tmpReader?=?new?BufferedReader(new?FileReader(fileName));
    ????????????????map.put(tmpReader,?tmpReader.readLine());
    ????????????}
    ????????????while?(true)?{
    ????????????????boolean?canRead?=?false;
    ????????????????Map.Entry<BufferedReader,?String>?minEntry?=?null;
    ????????????????for?(Map.Entry<BufferedReader,?String>?entry?:?map.entrySet())?{
    ????????????????????String?value?=?entry.getValue();
    ????????????????????if?(value?==?null)?{
    ????????????????????????continue;
    ????????????????????}
    ????????????????????//?獲取當前?reader?內容最小?entry
    ????????????????????if?((minEntry?==?null)?||?(Integer.valueOf(value)?<?Integer.valueOf(minEntry.getValue())))?{
    ????????????????????????minEntry?=?entry;
    ????????????????????}
    ????????????????????canRead?=?true;
    ????????????????}
    ????????????????//?當且僅當所有?reader?內容為空時,跳出循環
    ????????????????if?(!canRead)?{
    ????????????????????break;
    ????????????????}
    ????????????????//去重
    ????????????????if?(preStr?!=?null?&&?preStr.equals(minEntry.getValue()))?{
    ????????????????????minEntry.setValue(minEntry.getKey().readLine());
    ????????????????????continue;
    ????????????????}
    ????????????????preStr?=?minEntry.getValue();
    ????????????????writer.write(minEntry.getValue()?+?"\r\n");
    ????????????????minEntry.setValue(minEntry.getKey().readLine());
    ????????????}
    ????????}?catch?(Exception?e)?{
    ????????????e.printStackTrace();
    ????????}?finally?{
    ????????????//?注意關閉分片文件輸入流
    ????????????for?(BufferedReader?reader?:?map.keySet())?{
    ????????????????try?{
    ????????????????????reader.close();
    ????????????????}?catch?(IOException?e)?{
    ????????????????????e.printStackTrace();
    ????????????????}
    ????????????}
    ????????}
    ????}
    
    ????public?static?void?main(String[]?args)?throws?IOException?{
    ????????List<String>?separateFiles?=?separateFile();
    ????????mergeFile(separateFiles);
    ????}
    }


    查看全部
  • mybatis做對象關系映射
    查看全部
  • 數據庫連接池配置

    查看全部
  • mybatis 連表查詢

    查看全部

舉報

0/150
提交
取消
課程須知
《Java高并發秒殺API》是系列課程,共四門課,分別為業務分析和DAO層,Service層,Web層和高并發優化。本門課程是第一門課程,學習前需要了解如下知識: 1、精通JavaWeb基礎 2、熟悉SpringMVC、Spring和MyBatis框架
老師告訴你能學到什么?
1、掌握秒殺業務 2、能夠進行SpringMVC+Spring+MyBatis的整合開發 3、能夠進行秒殺業務DAO層的設計與實現

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!