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

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

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

    隨筆-86  評論-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,可滾動的,如果你的數(shù)據(jù)庫支持游標(biāo)自由移動的話可以加上,也就是說可以判斷查詢結(jié)果有沒有值,或者移動到下一行記錄等等.

           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 閱讀(733) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 最近中文字幕2019高清免费| a国产成人免费视频| 羞羞视频免费网站日本| 四虎精品成人免费视频| 日韩精品无码免费专区午夜不卡| 一区二区三区观看免费中文视频在线播放 | 青娱乐免费视频在线观看| 操美女视频免费网站| 无码不卡亚洲成?人片| 亚洲亚洲人成综合网络| 亚洲女人初试黑人巨高清| 亚洲av无一区二区三区| 永久免费无码日韩视频| 久久久久国产精品免费看| 99久久免费国产香蕉麻豆| 日韩免费观看一级毛片看看| 久久乐国产精品亚洲综合| 青青草原精品国产亚洲av| 亚洲一卡一卡二新区无人区| 久久免费视频一区| 69xx免费观看视频| 亚洲国产精品自在拍在线播放| 久久久久亚洲AV无码麻豆| 亚洲av无码一区二区三区人妖 | 久久久久久亚洲精品不卡| 亚洲黄色网址在线观看| 国产偷国产偷亚洲清高APP| a级片免费在线观看| 成年女人视频网站免费m| 国产亚洲精品线观看动态图| 亚洲国产视频网站| 永久免费精品影视网站| 老司机在线免费视频| 亚洲综合区小说区激情区 | 亚洲成色在线综合网站 | 亚洲欧美日韩中文字幕在线一区| 国产一级在线免费观看| 毛片免费vip会员在线看| 亚洲精品乱码久久久久66| 亚洲小说图区综合在线| 99久久成人国产精品免费|