<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();}
      }

    //數據插入

      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方法查詢數據

      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方法查詢數據");
           
    //q.setFirstResult(2);//
    查詢結果從第幾行開始列出數據
           
    //q.setMaxResults(10);//
    取多少條數據,就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
           
    // ScrollableResults sc=q.scroll();//得到一個ScrollableResults,可滾動的,如果你的數據庫支持游標自由移動的話可以加上,也就是說可以判斷查詢結果有沒有值,或者移動到下一行記錄等等.

           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中已經廢棄了find()和iterate()方法
       
    */

      
      
    //find方法查詢數據
      public void testFind(){
        
    try
     {
          List lt 
    = session.find("from Admin"
    );
          System.
    out.println("find方法查詢數據"
    );
          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方法查詢數據

      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();}
    //        }

      }

     
    //修改數據

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

        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);
    //調用Session的evict()方法立即釋放它的內存

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

     }

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

     
     
    //刪除數據
     public void testDelete(){
      
    try
     {
        
    int i = session.delete("from Admin where id = 2"
    );
        Transaction ts 
    =
     session.beginTransaction();
        System.
    out.println("刪除數據狀態 "+
    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) 評論(0)  編輯  收藏 所屬分類: Java
    MSN:envoydada@hotmail.com QQ:34935442
    主站蜘蛛池模板: 在线视频免费观看爽爽爽| 99视频有精品视频免费观看| 影音先锋在线免费观看| 亚洲综合网美国十次| 3d动漫精品啪啪一区二区免费| 亚洲天堂视频在线观看| 91短视频在线免费观看| 亚洲色欲或者高潮影院| 免费观看成人毛片a片2008| 亚洲中文字幕乱码一区| 日本无吗免费一二区| 国产成人va亚洲电影| 久久亚洲2019中文字幕| 久久国产乱子精品免费女| 亚洲自偷自拍另类12p| 亚洲人成免费电影| 亚洲无mate20pro麻豆| 免费无码又爽又高潮视频| 特级av毛片免费观看| 中文字幕在线亚洲精品| 一个人免费视频在线观看www| 亚洲国产一区二区a毛片| 亚洲免费视频观看| 国产精品久久久久久亚洲小说| 亚洲精品国产精品乱码不卞| 成人精品一区二区三区不卡免费看| 色婷婷六月亚洲婷婷丁香| 91免费资源网站入口| 免费一区二区三区在线视频| 亚洲精品成人片在线播放| 波多野结衣免费在线| 另类图片亚洲校园小说区| 亚洲AV永久无码精品一百度影院| 狼群影院在线观看免费观看直播| 亚洲精品无码不卡在线播放| 亚洲国产精品成人久久蜜臀| 99国产精品免费视频观看| 色婷婷六月亚洲综合香蕉| 久久青青草原亚洲AV无码麻豆| 久久久久久久久免费看无码| 国产成人精品免费视频大全|