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

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

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

    posts - 66,  comments - 11,  trackbacks - 0
      在Hibernate中,session負責完成對象的持久化操作,而Hibernate Session與之Hibernate,相當于JDBCConnection與之JDBC
    1、初始化Hibernate配置管理類Configuration
    Configuration config = new Configuration().configure();
    利用CLASSPATH中的默認配置文件hibernate.cfg.xml構建Configuration實例。
    2、通過Configuration類實例創建Session的工廠類SessionFactory
    SessionFactory sessionFactory = config.buildSessionFactory();
    3、通過SessionFactory得到Session實例
    session = sessionFactory.openSession();
    通過這個Session實例,就可以對對象進行持久化操作

      Configuration類負責管理Hibernate的配置信息,Hibernate運行時需要獲取一些底層實現的基本信息,包括:
    數據庫URL
    數據庫用戶名
    數據庫用戶密碼
    數據庫JDBC驅動類
    數據庫適配器,用于對特定數據庫提供支持。

      Configuration類一般只有在獲取SessionFactory時需要涉及,當SessionFactory實例創建之后,由于配置信息已經由hibernate綁定在返回的SessionFactory之中,因此一般情況下無需在對其操作。
    如果不希望使用默認的hibernate.cfg.xml文件作為配置文件,還有如下方法:
    File file = new File("c:\\sample\\myhiernate.xml");
    Configuration config = new Configuration().configure(file);

      SessionFactory負責創建Session實例:
    Configuration config = new Configuration().configure();
    SessionFactory sessionFactory = config.buildSessionFactory();
    SessionFactory一旦構造完成,即被賦予特定的配置信息。如果需要使用基于改動后的config實例的SessionFactory,需要從config重新構建一個SessionFactory實例。
    SessionFactory中保存了對應當前數據庫配置的所有映射關系,同時也負責維護當前的二級緩存和Statement Pool.由此可見,SessionFactory的創建過程必然非常復雜,代價高昂,而這也就意味著,我們應該在系統設計中充分考慮到SessionFactory的重用策略。由于SessionFactory是線程安全的,可以多個線程并發調用,大多數情況下,一個應用中針對一個數據庫共享一個SessionFactory實例即可。

      Session作為貫穿Hibernate的持久化管理器核心,提供了眾多持久化方法,如save、update、delete,find等。通過這些方法,可透明的完成對象的增刪改查。同事,Hibernate Session的設計是非線程安全的,也就是說,一個Session實例同時只可一個線程使用,同一個Session實例的多線程并發調用將導致難以預知的錯誤
    Configuration config = new Configuration().configure();
    SessionFactory sessionFactory = config.buildSessionFactory();
    Session session = sessionFactory.openSession();

    Save操作:
    //新增名為"Emma"的用戶記錄
    TUser user = new TUser();
    user.setName(
    "Emma");
    session.save(user);

    Get操作:
    //假設T_User表中存在id=1的記錄
    TUser user = (TUser)session.get(TUser.class,new Integer(1));

    delete操作:
    //假設T_User表中存在id=1的記錄
    TUser user = (TUser)session.get(TUser.class,new Integer(1));
    session.delete(user);


    //也可以通過HQL指定刪除條件(Hibernate2)
    session.delete("from TUser where id=1");


    //通過Query接口進行基于HQL的刪除操作(Hibernate3)
    String hql = "delete TUser where id=1";
    Query query 
    = session.createQuery(hql);
    query.executeUpdate();
    Find(Hibernate2)操作
    String hql 
    = "form TUser where name='Erica'";
    List userList 
    = session.find(hql);


    Hibernate3中的Session接口取消了find方法,我們必須通過Query或Criteria接口進行數據查詢
    通過Query接口進行數據查詢:
    String hql = "from TUser user where user.name like ?";
    Query query 
    = session.createQuery(hql);
    query.setParameter(
    0,"Cartier");

    List list 
    = query.list();

    Iterator it 
    = list.iterator();
    while(it.hasNext()){
        TUser user 
    = (TUser)it.next();
        System.out.println(user.getName);
    }

    通過Criteria接口進行數據查詢:
    Criteria criteria = session.createCriteria(TUser.class);
    criteria.add(Expression.eq(
    "name","Cartier"));

    List list 
    = criteria.list();
    Iterator it 
    = list.iterator();
    while(it.hasNext()){
        TUser user 
    = (TUser)it.next();
        System.out.println(user.getName());
    }

    Query面向HQL和Native SQL,而Criteria則提供了面向對象的查詢模式。



    posted on 2009-10-11 10:33 王永慶 閱讀(205) 評論(0)  編輯  收藏 所屬分類: HIBERNATE
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 在线观看亚洲天天一三视| 免费观看午夜在线欧差毛片| 国产精品亚洲аv无码播放| 无套内射无矿码免费看黄| 四虎1515hm免费国产| 色窝窝亚洲AV网在线观看| 国产精品无码一区二区三区免费 | 国产大片免费观看中文字幕| 亚洲国产成人AV在线播放| 国产美女无遮挡免费视频| 国产一区二区三区亚洲综合| 免费一级毛片一级毛片aa| 一二三区免费视频| 亚洲AV美女一区二区三区| AV无码免费永久在线观看| 亚洲欧洲AV无码专区| 亚洲AV蜜桃永久无码精品| 在线观看黄片免费入口不卡| 久久丫精品国产亚洲av| 免费看黄视频网站| 在线观看免费亚洲| 亚洲色精品aⅴ一区区三区| 99精品视频在线观看免费播放 | 久久久久久久免费视频| 亚洲熟妇AV乱码在线观看| 全黄性性激高免费视频| 99久久免费国产精精品| 亚洲成人在线免费观看| 国产成人涩涩涩视频在线观看免费| ssswww日本免费网站片| 亚洲麻豆精品果冻传媒| 在线免费不卡视频| 国产在线观看无码免费视频| 亚洲精品美女久久久久| 日本免费人成黄页在线观看视频| 一级大黄美女免费播放| 亚洲一级毛片免费看| 亚洲?V无码乱码国产精品| 91久久青青草原线免费| 美景之屋4在线未删减免费| 久久亚洲AV无码精品色午夜|