<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
    主站蜘蛛池模板: 国产亚洲综合一区柠檬导航| 国产免费资源高清小视频在线观看| 亚洲午夜福利在线观看| 老司机午夜性生免费福利| 国内精品免费视频自在线| 国产精品亚洲一区二区麻豆| 国产免费久久精品99re丫y| 亚洲人成人77777网站不卡| 四虎免费影院ww4164h| 亚洲综合久久1区2区3区| 蜜臀AV免费一区二区三区| 亚洲免费在线视频观看| 成年私人影院免费视频网站| 亚洲AV无码专区在线电影成人 | 色婷婷精品免费视频| 亚洲成人高清在线| 中文在线免费不卡视频| 亚洲av永久无码精品漫画| 1000部免费啪啪十八未年禁止观看| 亚洲国产成人九九综合| 免费羞羞视频网站| 一个人看的hd免费视频| 国产精品亚洲成在人线| 57PAO成人国产永久免费视频| 性色av极品无码专区亚洲| 亚洲精品国产精品乱码不卞| 日本高清免费观看| 亚洲最大的黄色网| 亚洲av无码国产精品色在线看不卡 | 国产精品免费在线播放| 亚洲视频中文字幕| 午夜时刻免费入口| 国产在线精品一区免费香蕉| 中文字幕亚洲免费无线观看日本| 精品熟女少妇AV免费观看| 免费一级全黄少妇性色生活片 | 在线观看的免费网站无遮挡| 亚洲AV无码一区二区三区性色| 中文亚洲成a人片在线观看| 在线人成精品免费视频| 亚洲妇女无套内射精|