<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免费在线观看| 国产成人免费a在线视频色戒| 亚洲精品熟女国产| 最近免费字幕中文大全视频| 久久亚洲精品AB无码播放| 99在线热播精品免费99热| 亚洲熟妇中文字幕五十中出| 中文日本免费高清| 五月天网站亚洲小说| 日韩精品无码专区免费播放| 久久精品a亚洲国产v高清不卡 | 亚洲电影免费观看| 免费观看的毛片大全| 亚洲一本到无码av中文字幕| 免费看美女被靠到爽| 免费视频成人国产精品网站| 国产精品亚洲美女久久久| 少妇性饥渴无码A区免费| 亚洲AV成人精品网站在线播放| 99久久综合精品免费| 国产成人亚洲合集青青草原精品| 最近免费中文字幕大全视频| 猫咪免费人成网站在线观看入口 | 国产美女a做受大片免费| 美女黄网站人色视频免费| 亚洲国产午夜福利在线播放| 91在线免费视频| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲人成电影在在线观看网色| 最近中文字幕免费mv在线视频 | 精品在线视频免费| 国产亚洲情侣一区二区无码AV| 99在线免费观看视频| 国产精品亚洲专区一区| 久久亚洲国产视频| 国产成人免费全部网站| 久久综合国产乱子伦精品免费| 亚洲人成欧美中文字幕| 亚洲国产美女精品久久久久∴|