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

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

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

    posts - 495,  comments - 11,  trackbacks - 0
      2011年10月9日

    > 引言
      在Jorm中,主鍵的生成策略主要有AUTO、UUID、GUID、FOREIGN、SEQUENCE、INCREMENT、IDENTITY、ASSIGNED,下面分別來講述這幾種策略的應用場景

    > GenerationType.AUTO
      Jorm的默認主鍵策略,自動增長型,自增步長為1,適用數據類型int,long,如:
      private int id // 默認策略就是AUTO,故可以不寫主鍵策略
      或
      @Id(GenerationType.AUTO) // 默認策略可以省去不寫的哦~
      private int id

    > GenerationType.INCREMENT
      顧名思義,增長型,適用數據類型int,long。自增步長為1
      1> 使用默認自增步長1,如:
         @Id(GenerationType.INCREMENT)
         @Column("item_id")
         private long id;
      2> 使用自定義步長,如:
         @Id(value = GenerationType.INCREMENT, incrementBy=3) // 這里自增步長為3,注意寫法
         private int id;

    > GenerationType.IDENTITY
      對于那些實現了自動增長的數據庫,可以使用IDENTITY,如MySQL,SQL Server,PostreSQL,前提是
      MySQL數據庫中建表語句定義了主鍵為:id(你的主鍵列名) int NOT NULL AUTO_INCREMENT 或
                                                                          
    id(你的主鍵列名) bigint NOT NULL AUTO_INCREMENT
      SQL Server數據庫中建表語句定義了主鍵為:id int identity(xx, xx) 如此類似
      PostreSQL數據庫中建表語句定義了主鍵為:id bigserial  或  id serial
      使用例子
      @Id(GenerationType.IDENTITY)
      @Column("id")
      private long sid;

    > GenerationType.UUID
      與數據庫無關的策略,適用數據類型:字符串類型,適用所有數據庫,長度須大于或等于32
      @Id(GenerationType.UUID)
      private String id;

    > GenerationType.GUID
      與UUID有點類似,不過這個id值是又數據庫來生成的,適用于數據庫MySQL、PostgreSQL、SQL Server、Oracle等
      @Id(GenerationType.GUID)
      private String id;

    > GenerationType.FOREIGN
      適用于一對一關系中引用了另一個對象的主鍵作為自己的主鍵的情形,如:
      @Id(GenerationType.FOREIGN)
      @Column("identity_number")
      private String identity;

    > GenerationType.SEQUENCE
      這個不用多說,應用于Oracle、H2、PostgreSQL等有sequence序列功能的數據庫

    > GenerationType.ASSIGNED
      用戶自定義生成,需要由程序員手工給主鍵主動賦值

     

    項目地址:http://javaclub.sourceforge.net/jorm.html
    下載地址:http://sourceforge.net/projects/javaclub/files/jorm/


    posted @ 2011-10-10 15:17 jadmin 閱讀(1492) | 評論 (3)編輯 收藏

    直接上代碼吧:

    > Demo one
    public void batch_op_one() {

        session = Jorm.getSession();
        JdbcBatcher batcher = session.createBatcher();
        batcher.addBatch("delete from t_id_auto");
        batcher.addBatch("delete from t_incre");
        batcher.addBatch("delete from t_user");
        batcher.execute();
       
        session.beginTransaction();
        long start;
        try {
            start = System.currentTimeMillis();
            String sql = "INSERT INTO t_user(sex,age,career,name,id) VALUES(?,?,?,?,?)";
            for (int i = 0; i < 100000; i++) {
                batcher.addBatch(sql, new Object[] {"男", Numbers.random(98), Strings.random(10), Strings.fixed(6), (i+1) });}
                String sqlx = "INSERT INTO t_id_auto(name, id) VALUES(?, ?)";
                for (int i = 0; i < 100000; i++) {
                    batcher.addBatch(sqlx, new Object[] {Strings.fixed(6), (i+1)});
                    if(i > 200) {
                        //Integer.parseInt("kkk");
                    }
                }
                batcher.execute();   
                System.out.println(System.currentTimeMillis() - start);
        } catch (Exception e) {
            session.rollback();
        } finally {
            session.endTransaction();
            session.close();
        }
    }

    > Demo two
    public void batch_op_two() {

        session = Jorm.getSession();
        session.beginTransaction();
        session.clean(User.class);
        JdbcBatcher batcher = session.createBatcher();
        batcher.setBatchSize(500);// 指定每批處理的記錄數
       
        User u;
        int times = 20 * 100;
        long start = System.currentTimeMillis();
        for(int i = 0; i < times; i++) {
         String sex = (i % 2 == 0 ? "男" : "女");
         u = new User(Strings.fixed(6), sex, Numbers.random(100), Strings.random(16));
         batcher.save(u);
        }
        batcher.execute();
        session.endTransaction();
        long cost = (System.currentTimeMillis() - start);
        System.out.println("Total:" + cost);
        System.out.println("Each:" + (float) cost / times);
        session.close();
    }

    項目地址:http://javaclub.sourceforge.net/jorm.html
    下載地址: http://sourceforge.net/projects/javaclub/files/jorm/

    posted @ 2011-10-09 20:09 jadmin 閱讀(1294) | 評論 (0)編輯 收藏
    主站蜘蛛池模板: 久久亚洲国产成人影院网站| 69精品免费视频| 在线播放免费人成视频在线观看| 亚洲精品乱码久久久久久久久久久久| 老司机免费午夜精品视频| 午夜亚洲国产成人不卡在线| 免费人成又黄又爽的视频在线电影| 国产免费131美女视频| 美女被羞羞网站免费下载| 日本免费电影一区| 羞羞视频网站免费入口| 日韩精品成人亚洲专区| 亚洲欧美在线x视频| 亚洲国产成人久久综合碰| 一级免费黄色大片| 国产成人亚洲综合色影视| 麻豆精品不卡国产免费看| 亚洲综合久久一本伊伊区| 国产免费毛不卡片| 色欲aⅴ亚洲情无码AV蜜桃| 亚洲精品国产电影| 四虎国产精品免费永久在线| 亚洲国产一区在线| 毛片免费视频播放| 国产亚洲福利精品一区| 99精品视频在线视频免费观看| 亚洲一区二区三区免费视频| 老司机精品视频免费| 亚洲欧洲日产国码无码久久99| 一区二区三区四区免费视频 | 亚洲国产成人久久精品app| 亚洲免费一级视频| 亚洲日韩国产AV无码无码精品| 五月天婷亚洲天综合网精品偷| 中国一级特黄高清免费的大片中国一级黄色片 | 黄页免费在线观看| 亚洲人成小说网站色| 亚洲成a人一区二区三区| 蜜桃成人无码区免费视频网站| 亚洲精品无码久久久久秋霞| 亚洲综合在线另类色区奇米|