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

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

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

    隨筆-86  評(píng)論-33  文章-0  trackbacks-0

     

    package hibernatetest;

    import net.sf.hibernate.
    *
    ;
    import net.sf.hibernate.cfg.Configuration;
    import derek.hibernate.test.Admin;
    import java.util.Iterator;
    import java.util.List;
    import java.sql.
    *
    ;

    public class
     TestConTest  {
      Session session 
    = null
    ;

      
    protected void
     setUp(){

        
    try
     {
          Configuration config 
    = new
     Configuration().configure();
          SessionFactory sessionFactory 
    =
     config.buildSessionFactory();
          System.
    out.println(config.getProperty("connection.url"
    ));
          session 
    =
     sessionFactory.openSession();
        }
        
    catch
     (HibernateException ex1) {ex1.printStackTrace();}
      }

    //數(shù)據(jù)插入

      public void testInsert(){
        
        Admin admin 
    = new
     Admin();
        admin.setName(
    "Hiber"
    );
        admin.setPasswd(
    "gen"
    );
        System.
    out
    .println(admin.getName());
        System.
    out
    .println(admin.getPasswd());
        
    try
     {
          Transaction ts 
    =
     session.beginTransaction();
          session.save(admin);
          session.flush();
          ts.commit();
        }
        
    catch
     (HibernateException ex) {ex.printStackTrace(); }
      }

    //Query方法查詢數(shù)據(jù)

      public void testQuery(){
          
    try
     {
           Query q 
    = session.createQuery("from Admin where id=?"
    );
           q.setInteger(
    0,2);//這里的?跟JDBC的PreparedStatement方法的差不多,只不過這里的是以0開始,jdbc的是1開始。

           System.out.println("Query方法查詢數(shù)據(jù)");
           
    //q.setFirstResult(2);//
    查詢結(jié)果從第幾行開始列出數(shù)據(jù)
           
    //q.setMaxResults(10);//
    取多少條數(shù)據(jù),就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
           
    // ScrollableResults sc=q.scroll();//得到一個(gè)ScrollableResults,可滾動(dòng)的,如果你的數(shù)據(jù)庫(kù)支持游標(biāo)自由移動(dòng)的話可以加上,也就是說可以判斷查詢結(jié)果有沒有值,或者移動(dòng)到下一行記錄等等.

           Iterator it = q.iterate();
           
    while
    (it.hasNext()){
             Admin admin 
    =
     (Admin)it.next();
             System.
    out
    .println(admin.getId());
             System.
    out
    .println(admin.getName());
             System.
    out
    .println(admin.getPasswd());
           }
           session.flush();
          }
          
    catch
     (HibernateException ex) {ex.printStackTrace();}
    //
          finally{
    //
          try {
    //
            session.close();
    //
          }
    //
          catch (HibernateException ex1) {ex1.printStackTrace();}
    //      }

      }

      
    /*
    *
       * Hibernate3.0中已經(jīng)廢棄了find()和iterate()方法
       
    */

      
      
    //find方法查詢數(shù)據(jù)
      public void testFind(){
        
    try
     {
          List lt 
    = session.find("from Admin"
    );
          System.
    out.println("find方法查詢數(shù)據(jù)"
    );
          Iterator it 
    =
     lt.iterator();
          
    while
    (it.hasNext()){
            Admin admin 
    =
     (Admin)it.next();
            System.
    out
    .println(admin.getId());
            System.
    out
    .println(admin.getName());
            System.
    out
    .println(admin.getPasswd());
          }
          session.flush();
        }
        
    catch
     (HibernateException ex) {ex.printStackTrace();}
    //
        finally{
    //
        try {
    //
          session.close();
    //
        }
    //
        catch (HibernateException ex1) {ex1.printStackTrace();}
    //    }

      }

      
    //iterate方法查詢數(shù)據(jù)

      public void testIterator(){
        
    try
     {
          Iterator it 
    = session.iterate("from Admin"
    );
          
    while
    (it.hasNext()){
            Admin admin 
    =
     (Admin)it.next();
            System.
    out
    .println(admin.getId());
            System.
    out
    .println(admin.getName());
            System.
    out
    .println(admin.getPasswd());
            session.flush();
            
          }
        }
        
    catch
     (HibernateException ex) {ex.printStackTrace();}
    //
        finally{
    //
            try {
    //
               session.close();
    //
                }catch (HibernateException ex1) {ex1.printStackTrace();}
    //        }

      }

     
    //修改數(shù)據(jù)

     public void testModify(){
      
    try
     {
        Connection con 
    = session.connection();//得到數(shù)據(jù)庫(kù)連接

        Query q = session.createQuery("from Admin where id = 2");
        Iterator it 
    =
     q.iterate();
        Transaction ts 
    =
     session.beginTransaction();
        
    if
    (it.hasNext()){
        Admin admin 
    =
     (Admin)it.next();
        admin.setName(
    "dada"
    );
        session.update(admin);
        session.evict(admin);
    //調(diào)用Session的evict()方法立即釋放它的內(nèi)存

        session.flush();
        ts.commit();
        }
      }
      
    catch
     (HibernateException ex) {ex.printStackTrace();}
    //
      finally{
    //
            try {
    //
               session.close();
    //
                }catch (HibernateException ex1) {ex1.printStackTrace();}
    //        }

     }

     
    /*
    *
      * delete()方法執(zhí)行首先是執(zhí)行select語句把符合條件的記錄載入內(nèi)存中,
      * 然后做逐一刪除即有多少條符合條件的記錄就執(zhí)行多少次刪除命令 
      
    */

     
     
    //刪除數(shù)據(jù)
     public void testDelete(){
      
    try
     {
        
    int i = session.delete("from Admin where id = 2"
    );
        Transaction ts 
    =
     session.beginTransaction();
        System.
    out.println("刪除數(shù)據(jù)狀態(tài) "+
    i);
        session.flush();
      }
      
    catch
     (HibernateException ex) {ex.printStackTrace();}
    //
      finally{
    //
          try {
    //
             session.close();
    //
              }catch (HibernateException ex1) {ex1.printStackTrace();}
    //      }


     }
     
    public static void main(String arg[]){
        TestConTest tt 
    = new
     TestConTest();
        tt.setUp();
        tt.testInsert();
        
    //
    tt.testDelete();
        
    //tt.testModify();

        tt.testIterator();
     }
    }
    posted on 2005-09-13 16:55 Derek.Guo 閱讀(737) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 亚洲 日韩经典 中文字幕| 一本色道久久综合亚洲精品| 亚洲高清免费在线观看| 成全在线观看免费观看大全 | 精品亚洲456在线播放| 精品免费久久久久久久| 亚洲国产精品久久网午夜| 免费下载成人电影| 91在线亚洲综合在线| 午夜两性色视频免费网站| 亚洲精品精华液一区二区| 欧洲美熟女乱又伦免费视频 | 在线播放免费人成视频网站| 国产免费午夜a无码v视频| 黄色一级毛片免费| 亚洲精品乱码久久久久久中文字幕| 成人国产精品免费视频| 国产AV无码专区亚洲AV男同| 91免费福利精品国产| 亚洲avav天堂av在线网爱情| 拔擦拔擦8x华人免费久久| yellow视频免费看| 午夜影视日本亚洲欧洲精品一区| 永久看日本大片免费35分钟 | 亚洲国产一区明星换脸| a级毛片免费全部播放无码| 亚洲视频免费一区| 国产国产人免费视频成69大陆| 牛牛在线精品观看免费正| 久久亚洲国产视频| 成人免费a级毛片| 无码AV动漫精品一区二区免费| 日本亚洲视频在线 | 日韩中文无码有码免费视频| 一区二区三区AV高清免费波多| 久久精品国产亚洲av成人| 欧美在线看片A免费观看| sss在线观看免费高清| 亚洲美女aⅴ久久久91| 免费人成网站在线播放| 久久免费国产视频|