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

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

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

    隨筆 - 45, 文章 - 2, 評論 - 11, 引用 - 0
    數據加載中……

    jdbc批處理方法

    package cc.apl330;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    
    import cc.apl330.dao.UserDAOException;
    
    
    //注意批處理在實際中應用要注意同時打包太多的處理會引起內存溢出.
    public class BatchTest {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		long start = System.currentTimeMillis() ;
    		//常規方式提交處理
    		for(int i=0; i<200; i++){
    			create(i) ;
    		}
    		long end = System.currentTimeMillis() ;
    		System.out.println("crate:" + (end - start)) ;
    		
    		//成批提交處理
    		start = System.currentTimeMillis() ;
    		create1() ;
    		end = System.currentTimeMillis() ;
    		System.out.println("Batchcrate:" + (end - start)) ;
    
    	}
    	
    	//常規方式提交處理
    	static void create(int i){
    		String sql = "INSERT INTO USER(name,money) VALUES(?,?);";
    		Connection conn;
    		PreparedStatement ps;
    		try {
    			conn = JdbcUtil.getConnection();
    			ps = conn.prepareStatement(sql) ;
    			ps.setString(1, "name"+i) ;
    			ps.setFloat(2, 200f+i) ;
    			ps.executeUpdate();
    			JdbcUtil.free(null, ps, conn) ;
    		} catch (SQLException e) {
    			throw new UserDAOException(e.getMessage(),e) ;
    		}
    	}
    	
    	//成批提交處理
    	static void create1(){
    		String sql = "INSERT INTO USER(name,money) VALUES(?,?);";
    		Connection conn;
    		PreparedStatement ps;
    		try {
    			conn = JdbcUtil.getConnection();
    			ps = conn.prepareStatement(sql) ;
    			for(int i=200; i<400; i++){
    				ps.setString(1, "name"+i) ;
    				ps.setFloat(2, 200f+i) ;
    				ps.addBatch();//將處理打包
    			}
    			//執行批處理
    			int[] is = ps.executeBatch() ;
    			System.out.println(is.length+"") ;
    			JdbcUtil.free(null, ps, conn) ;
    		} catch (SQLException e) {
    			throw new UserDAOException(e.getMessage(),e) ;
    		}
    	}
    }

    posted @ 2010-07-31 16:09 jack zhai 閱讀(187) | 評論 (0)編輯 收藏

    JAVA核心技術筆記1

    第一個JAVA程序:

    public class Hello{
      public static void main(String[] args ){
         System.out.println("hello world") ;
      }
    }

    使用文本編輯器輸入以上內容,保存為java源文件擴展名:Hello.java
    需要注意以下幾點:
    JAVA對大小寫敏感(main 與 Main 代表不同的概念)
    源代碼的文件名必須與公有類的名字相同,并用.java作為擴展名
    類的標準命名規范:類名是以大寫字母開關的名詞。
    程序總是從main方法開始運行
    一對花括號表示方法的開始與結束語。程序中每條語句都以分號結束(就算分號前沒有寫任何,一個分號也算一句語句)。
    點號用來調用一個方法如 System.out.println() ;println()是一個方法。方法后的括號是必須,即便里什么也沒有。

    3.2 注釋
    單行注釋:   //
    多行注釋:  /**/
    第三種注釋:以/**開始 以*/結束。這種注釋用來自動生成文檔

    單行注釋,注釋內容從//開始到本行結尾  
    多行注釋內不能再包括 /**/。意思是他們不能嵌套

    3.3數據類型
    java是一種強類型語言。這就意味每一個變量聲明一種類型。
    數據類型的大小與運行代碼的機器無關。
    java一共有8種基本類型,4個整型,2個浮點類型,1個char類型,1個boolean類型(表示真假)
    整型
    整型又按照長度分為4種:int(4 byte) short(2 byte) long(8 byte) byte(1 byte)
    使用long類型需要加后綴L(400000000L),十六進制數值有一個前綴0x(如0xCAFE),八進制有一個前綴0(如010對應八進制中的8,建議不要使用八進制常數,因為他比較容易混淆)
    浮點型
    浮點類型有兩種:float(4 byte) double(8 byte)
    浮點類型有一個后綴F(如2.12F),沒有加后綴的(如2.12)默認為double類型,double后綴為D。
    使用浮點類型需要注意:浮點數的計算會有誤差。用2.0-1.1不會得到0.9,有可能得到0.89999。原因是浮點數點值是采用二進制系統表示的,而在二進制里無法精確的表示分數1/10。就像二進制無法精確的表示1/3一樣。如果需要在數值計算中不含舍入誤差,就應該使用BigDecimal類。
    char類型
    在程序設計中盡量不要使用此類型
    boolean類型
    boolean(布爾)類型有兩個值:flase 和 true ; 這兩個值不能和整型相互轉換。
    3.4變量
    聲明變量方式為:
      double salary;
      int vacat ;
      long earth ;
    變量名必須是一個公字母開關的字母或數字序列。但,變量名命名不能為java保留字。
    3.4.1 初始化變量
    int i ; //申明變量i
    i = 1 ; //給變量i賦值
    也可以這樣賦值 int y = 10 ;
    3.4.2 常量
    關鍵字final用于聲明常量。常量只能被賦值一次。一旦被賦值之后,就不能夠再更改了。習慣上常量名使用大寫。
    有一種常量叫類常量,這種常量可以在各個類之間使用。定義方法: static final int sf = 90 ;
    實例:
    Changliang.java
        public class Changliang {
            static final int ZHAI = 90 ;
        }
    IOtest.java
    public class IOtest {
        public static void main(String[] args) {
            System.out.println(Changliang.ZHAI + "") ;
        }
    }

    3.5 運算符
    JAVA中運算符包括:+(加)-(減)*(乘)/(除)%(取?;蛘呓星笥啵?br> / 號兩邊如果是整型,運算的結果會截去小數點后的數字。如 15/2=7。如果是浮點型則是這樣15.0/2=7.5 。
    % 符使用如15%2=1
    為簡化編程,JAVA像C語言一樣有兩元運算符。
         如{int i = 1 ;i = i+2 ;}可以簡化為{int i = 1; i += 2;}
    3.5.1自增自減
    以下源碼便說明:
    IOtest.java
    public  class IOtest {
        public strictfp static void main(String[] args) {
            System.out.println("i++,是先用后加。當然是在同一語句中") ;
            int i = 1 ;
            int y = 4 * i++ ;
            System.out.println("i=" + i) ;
            System.out.println("y=" + y) ;
            System.out.println("++i,是先加后用。當然是在同一語句中") ;
            i =1 ;
            int x = 4 * ++i ;
            System.out.println("i=" + i) ;
            System.out.println("x=" + x) ;
    //       
    //        i++,是先用后加。當然是在同一語句中
    //        i=2
    //        y=4
    //        ++i,是先加后用。當然是在同一語句中
    //        i=2
    //        x=8
            //以下使用自增自減的效果是一樣的
            int p = 1 ;
            System.out.println("p="+ p) ;
            p++ ;
            System.out.println("p="+ p) ;
            int q = 1 ;
            System.out.println("q="+ q) ;
            q++ ;
            System.out.println("q="+ q) ;
    //        p=1
    //        p=2
    //        q=1
    //        q=2
        }
    }

    posted @ 2010-07-31 15:36 jack zhai 閱讀(349) | 評論 (0)編輯 收藏

    攔截器的實現原理

    運行主類
    Main.java

    public class Main {
        public static void main(String[] args) {
            new ActionInterceptor().invoke() ;
        }
    }

    /********************************/

    攔截器核心
    ActionInterceptor.java

    import java.util.ArrayList;
    import java.util.List;

    public class ActionInterceptor {
        List<Inte> intes = new ArrayList<Inte>() ;
        int index = -1 ;
        public ActionInterceptor() {
            intes.add(new FistInte()) ;
            intes.add(new SecondInte()) ;
        }
        public void invoke() {
            index++ ;
            if(index >= intes.size()) {
                new Action().execute() ;
            }else {
                this.intes.get(index).inte(this) ;
            }
        }
    }

    /********************************/

    接口:與攔截器之間的通訊接口
    Inte.java

    public interface Inte {
        void inte(ActionInterceptor actioninterceptor) ;
    }

    /********************************/

    接口使用類
    FistInte.java

    public class FistInte implements Inte {

        @Override
        public void inte(ActionInterceptor actioninterceptor) {
            System.out.println(1) ;
            actioninterceptor.invoke() ;
            System.out.println(-1) ;
        }
    }

    SecondInte.java
    public class SecondInte implements Inte {

        @Override
        public void inte(ActionInterceptor actioninterceptor) {
            System.out.println(2) ;
            actioninterceptor.invoke() ;
            System.out.println(-2) ;
        }
    }

    /********************************/

    動作類

    Action.java
    public class Action {
        public void execute() {
            System.out.println("execute!") ;
        }
    }

    posted @ 2010-07-31 15:19 jack zhai 閱讀(496) | 評論 (0)編輯 收藏

    僅列出標題
    共5頁: 上一頁 1 2 3 4 5 
    主站蜘蛛池模板: 亚洲欧洲日韩极速播放| 久久精品亚洲福利| 亚洲av无码专区在线| 真人做A免费观看| 亚洲av成人综合网| 国产a不卡片精品免费观看| 亚洲av无码兔费综合| 免费精品国产自产拍观看| 一级美国片免费看| 亚洲无线码一区二区三区| 大妹子影视剧在线观看全集免费| 亚洲日韩VA无码中文字幕| 一级毛片免费在线| 亚洲综合网站色欲色欲| 日韩免费高清大片在线| 亚洲免费电影网站| 日韩高清在线高清免费| 无人视频免费观看免费视频| 亚洲五月午夜免费在线视频| av永久免费网站在线观看| 亚洲天堂一区在线| 国产精品嫩草影院免费| 五月天婷婷免费视频| 亚洲国产精品嫩草影院在线观看| 日日麻批免费40分钟无码| 国产精品亚洲自在线播放页码| 日本特黄a级高清免费大片| 一级毛片无遮挡免费全部| 久久精品国产亚洲网站| 成年网站免费视频A在线双飞| 最新亚洲人成网站在线观看| 日本亚洲国产一区二区三区| 日本免费一区二区在线观看| 苍井空亚洲精品AA片在线播放| 久久久久亚洲AV无码专区桃色 | 色视频在线观看免费| 国产亚洲精品观看91在线| 免费下载成人电影| 国产精品永久免费| 亚洲人配人种jizz| 中文字幕专区在线亚洲|