<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java && C#

    要學得東西很多,但我們的時間卻不是很多!
    數據加載中……

    2007年3月23日

    點點滴滴

         N長時間沒有來了.......
         忙中偷閑,整理點代碼。
         /** 
         *  復制單個文件 
         *  @param  oldPath  String  原文件路徑  如:c:/fqf.txt 
         *  @param  newPath  String  復制后路徑  如:f:/fqf.txt 
         *  @return  boolean 
         */ 
       public  void  copyFile(String  oldPath,  String  newPath) 
       { 
           try  { 
               int  bytesum  =  0; 
               int  byteread  =  0; 
               File  oldfile  =  new  File(oldPath); 
               if  (oldfile.exists())  {  //文件存在時 
                   InputStream  inStream  =  new  FileInputStream(oldPath);  //讀入原文件 
                   FileOutputStream  fs  =  new  FileOutputStream(newPath); 
                   byte[]  buffer  =  new  byte[1444]; 
                   int  length; 
                   while  (  (byteread  =  inStream.read(buffer))  !=  -1)  { 
                       bytesum  +=  byteread;  //字節數  文件大小 
                       System.out.println(bytesum); 
                       fs.write(buffer,  0,  byteread); 
                   } 
                   inStream.close(); 
               } 
           } 
           catch  (Exception  e)  { 
               System.out.println("復制單個文件操作出錯"); 
               e.printStackTrace();  
           }  
       }  

    //保存文件的方法
    public String Savefiles(FormFile file,String path)
     {  
      String fileName= file.getFileName();
      String contentType = file.getContentType();
      String size = (file.getFileSize() + " bytes");
      try
      {
       ByteArrayOutputStream baos = new ByteArrayOutputStream();
       InputStream stream = file.getInputStream();
       OutputStream bos = new FileOutputStream(path+fileName);
       int bytesRead = 0;
       byte[] buffer = new byte[8192];
       while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
        bos.write(buffer, 0, bytesRead);
       }
       bos.close();      
       stream.close();  
      }
      catch (IOException e) {
       return e.getMessage();
      }
      return "1";
     }

    //生成15位的字符串
    public String GenTradeId()
     {
      String tradeId = "";
      RandomStrg.setCharset("a-zA-Z0-9");  
      RandomStrg.setLength("15");  
      try
      {
       RandomStrg.generateRandomObject();
       tradeId=RandomStrg.getRandom();   
      }
      catch (Exception e)
      {    
      }
      return tradeId;  
     }

    /**
      * 刪除字符串中的空格,至多只保留一個空格
      * 
      * @String txt:輸入需要處理的字符串
      * @return String :返回處理后的字符串
      * 
      */
     public String deleteWhitespace(String txt){
      if((txt!=null)&&(txt.trim().length()>1)){
       
      }
      else{
       return "";
      }
      
      txt = txt.replaceAll("\n"," ").replaceAll("\t"," ");
      String temp="";
      try{
       int flag =0,num=0;
       char c = 'x';
       StringBuffer sb = new StringBuffer("");
       for(int x=0;x<txt.length();x++){
        c = txt.charAt(x);
        if((c==' ')&&(flag==0)){
         sb.append(c);
         flag =1;
        }
        else if((c!=' ')){
         sb.append(c);
         flag =0;
        }
       }
       temp = sb.toString().trim();
      }
      catch(Exception e){
       ;
      }
      return temp;
     }

    posted @ 2007-08-08 11:03 Bill111 閱讀(1534) | 評論 (0)編輯 收藏
    JavaScript Example

         摘要: 1.文本框焦點問題onBlur:當失去輸入焦點后產生該事件onFocus:當輸入獲得焦點后,產生該文件Onchange:當文字值改變時,產生該事件Onselect:當文字加亮后,產生該文件 <input type="text" value="郭強" onfocus="if(value=='郭強') {value=''}" onblur="if (value=='')...  閱讀全文

    posted @ 2007-03-27 17:18 Bill111 閱讀(2249) | 評論 (0)編輯 收藏
    SQL執行效率

    SQL語句中,IN、EXISTS、NOT IN、NOT EXISTS的效率較低,尤其是后兩種語句,當數據量較大時,更常給人一種死機般的感覺。本文提供一種使用連接的方法代替以上的四種語句,可大副提高SQL語句的運行效率。以NOT IN為例,當數據量達到一萬時,效率可提高20倍,數據量越大,效率提高的幅度也就越大。

    本文所舉的例子在Oracle 7.0下運行通過,但本文所推薦的方法在各種大型數據庫上皆適用。
    為了能夠更好的說明問題,我們采用示例的方式來說明問題。下面,我們將創建一些數據庫表和數據,用于在舉例時使用。

    下面的語句將創建我們示例中將使用的表,并分別在表1(TAB1)中存入10000條數據,表2(TAB2)中存入5000條數據。

    SQL語句如下:

    CREATE TABLE TAB1
    (
    COL1 VARCHAR(20) NOT NULL,
    COL2 INTEGER,
    PRIMARY KEY(COL1)
    );
    CREATE TABLE TAB2
    (
    COL1 VARCHAR(20) NOT NULL,
    PRIMARY KEY(COL1)
    );
    CREATE TABLE TAB3
    (
    COL1 VARCHAR(20) NOT NULL,
    PRIMARY KEY(COL1)
    );
    CREATE OR REPLACE TRIGGER T_TAB3 BEFORE INSERT ON TAB3 FOR EACH ROW
    DECLARE
    NUM1 NUMBER;
    BEGIN
    NUM1:=1;
    LOOP
    EXIT WHEN NUM1>10000;
    INSERT INTO TAB1 VALUES (NUM1,NUM1);
    IF NUM1<=5000 THEN INSERT INTO TAB2 VALUES (NUM1);
    END IF;
    NUM1:=NUM1+1;
    END LOOP;
    END;
    INSERT INTO TAB3 VALUES('1');

    下面,我們將舉2個例子來具體說明使用連接替換IN、NOT IN、EXISTS、NOT EXISTS的方法。

     讀取表1中第2列(COL2)數據的總和,且其第1列數據存在于表2的第1列中。

    1. 使用IN的SQL語句:

    SELECT SUM(COL2) FROM TAB1 WHERE COL1 IN(SELECT COL1 FROM TAB2)

    2. 使用EXISTS的SQL語句:

    SELECT SUM(COL2) FROM TAB1 WHERE EXISTS(SELECT * FROM TAB2 WHERE TAB1.COL1=TAB2.COL1)

    3. 使用連接的SQL語句:

    SELECT SUM(A.COL2) FROM TAB1 A,TAB2 B

    WHERE A.COL1=B.COL1

     讀取表1中第2列(COL2)數據的總和,且其第1列數據不存在于表2的第1列中。


    1. 使用NOT IN的SQL語句:

    SELECT SUM(COL2) FROM TAB1 WHERE COL1 NOT IN(SELECT COL1 FROM TAB2)

    2. 使用NOT EXISTS的SQL語句:

    SELECT SUM(COL2) FROM TAB1 WHERE NOT EXISTS(SELECT * FROM TAB2 WHERE
    TAB1.COL1=TAB2.COL1)

    3. 使用外連接的SQL語句:

    SELECT SUM(A.COL2) FROM TAB1 A,TAB2 B WHERE A.COL1=B.COL1(+) AND B.COL1 IS NULL

    下面介紹IN、NOT IN、EXIST、NOT EXIST在DELETE和UPDATE語句中的效率提高方法。

    下面所舉的例子在Microsoft SQL Server 7.0下運行通過,但所推薦的方法在各種大型數據庫上皆適用。下面,我們將創建一些數據庫表和數據,用于舉例說明。我們將分別在表A(TA)中存入 10000條數據,表B(TB)中存入5000條數據。

    SQL語句如下:

    CREATE TABLE TA
    (
    CA INT
    )
    CREATE TABLE TB
    (
    CA INT
    )
    CREATE TABLE TC
    (
    CA INT
    )
    CREATE TRIGGER TRA ON TC
    FOR INSERT
    AS
    DECLARE @MINT INT
    BEGIN
    SELECT @MINT=1
    WHILE (@MINT<=5000)
    BEGIN
    INSERT INTO TA VALUES(@MINT)
    INSERT INTO TB VALUES(@MINT)
    SELECT @MINT=@MINT+1
    END
    WHILE (@MINT<=10000)
    BEGIN
    INSERT INTO TA VALUES(@MINT)
    SELECT @MINT=@MINT+1
    END
    END
    GO
    INSERT INTO TC VALUES(1)
    GO

     刪除表A中表A和表B相同的數據

    1. 用IN的SQL語句:
    DELETE FROM TA WHERE TA.CA IN (SELECT CA FROM TB)

    2. 用EXISTS的SQL語句:
    DELETE FROM TA WHERE EXISTS (SELECT * FROM TB WHERE TB.CA=TA.CA)

    3. 使用連接的SQL語句:
    DELETE TA FROM TA,TB WHERE TA.CA=TB.CA

     刪除表A中表A存在但表B中不存在的數據

    1. 使用IN的SQL語句:
    DELETE FROM TA WHERE TA.CA NOT IN (SELECT CA FROM TB)

    2. 使用EXISTS的SQL語句:
    DELETE FROM TA WHERE NOT EXISTS (SELECT CA FROM TB WHERE TB.CA=TA.CA)

    3. 使用連接的SQL語句:
    DELETE TA FROM TA LEFT OUTER JOIN TB ON TA.CA=TB.CA WHERE TB.CA IS NULL


     更新表A中表A和表B相同的數據
    1. 使用IN的SQL語句:
    UPDATE TA SET CA=CA+10000 WHERE CA IN (SELECT CA FROM TB)

    2. 使用EXISTS的SQL語句:
    UPDATE TA SET CA=CA+10000 WHERE EXISTS (SELECT CA FROM TB WHERE TB.CA=TA.CA)

    3. 使用連接的SQL語句:
    UPDATE TA SET TA.CA=TA.CA+10000 FROM TA,TB WHERE TA.CA=TB.CA


     更新表A中表A存在但表B中不存在的數據

    1. 使用IN的SQL語句:
    UPDATE TA SET CA=CA+10000 WHERE CA NOT IN (SELECT CA FROM TB)

    2. 使用EXISTS的SQL語句:
    UPDATE TA SET CA=CA+10000 WHERE NOT EXISTS (SELECT CA FROM TB WHERE TB.CA=TA.CA)

    3. 使用連接的SQL語句:
    UPDATE TA SET TA.CA=TA.CA+10000 FROM TA LEFT OUTER JOIN TB ON TA.CA=TB.CA WHERE TB.CA IS NULL

    posted @ 2007-03-23 13:50 Bill111 閱讀(3620) | 評論 (2)編輯 收藏
    主站蜘蛛池模板: caoporn国产精品免费| 国产亚洲综合一区二区三区| a毛片免费观看完整| 亚洲自偷自偷图片| a级毛片免费网站| 亚洲一区二区三区无码中文字幕| 一级毛片a免费播放王色电影 | 国产在线观a免费观看| 久久久久亚洲爆乳少妇无| 一个人晚上在线观看的免费视频| 亚洲国产天堂久久久久久| xxxxx做受大片在线观看免费| 国产亚洲精品成人a v小说| 国内精品免费久久影院| 久久久久亚洲AV片无码| 亚洲黄色免费网站| 亚洲精品一二三区| 国产色婷婷精品免费视频| 一级毛片免费在线播放| 久久久精品国产亚洲成人满18免费网站| WWW国产成人免费观看视频| 亚洲国产另类久久久精品 | 日本免费在线中文字幕| 老司机亚洲精品影院无码| 国语成本人片免费av无码| 亚洲AV香蕉一区区二区三区| 亚洲一区二区精品视频| 免费在线看污视频| 亚洲国产成a人v在线观看| 国产免费观看视频| 免费一区二区无码东京热| 亚洲成人黄色网址| 男人的天堂亚洲一区二区三区| 亚洲av最新在线观看网址| 亚洲国产综合久久天堂| 99精品视频免费在线观看| 亚洲AⅤ男人的天堂在线观看| 亚洲精品成人无码中文毛片不卡| 1000部夫妻午夜免费| 日本黄页网址在线看免费不卡| 亚洲日本精品一区二区|