<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ù)庫支持游標(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ù)庫連接

        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 閱讀(732) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 日本免费xxxx色视频| 亚洲毛片不卡av在线播放一区| 亚洲色偷精品一区二区三区| 国产视频精品免费| a级毛片毛片免费观看久潮| 亚洲日产2021三区在线| 亚洲成年看片在线观看| 69视频在线是免费观看| 亚洲国产精品无码久久久秋霞1| 中文字幕亚洲不卡在线亚瑟| 91香焦国产线观看看免费| 偷自拍亚洲视频在线观看99| 亚洲AV无码专区在线播放中文| 女人18毛片水真多免费看| 久久久久国色av免费看| 亚洲av成人中文无码专区| 亚洲欧洲国产精品你懂的| avtt亚洲天堂| 成人黄页网站免费观看大全| a级日本高清免费看| 亚洲成在人线在线播放无码| 久久久久亚洲精品无码蜜桃| 亚洲另类少妇17p| 日韩中文字幕精品免费一区| 波霸在线精品视频免费观看| 亚洲风情亚Aⅴ在线发布| 亚洲高清不卡视频| 亚洲国产成人高清在线观看| 又大又粗又爽a级毛片免费看| 台湾一级毛片永久免费| 日韩av无码久久精品免费 | 国产亚洲日韩在线a不卡| 亚洲综合在线成人一区| 精品亚洲一区二区| 亚洲第一成人影院| 在线看片无码永久免费aⅴ| 免费AA片少妇人AA片直播| 免费A级毛片无码A∨| 波多野结衣免费一区视频| 无码 免费 国产在线观看91 | 97精品免费视频|