隨筆-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 閱讀(734) 評論(0)  編輯  收藏 所屬分類: Java
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 彰武县| 蒲江县| 库尔勒市| 客服| 彭州市| 福海县| 崇明县| 怀宁县| 绍兴市| 论坛| 曲麻莱县| 龙里县| 桑日县| 宜章县| 淅川县| 信丰县| 偏关县| 天峨县| 阿拉善左旗| 磐安县| 临沧市| 云和县| 安岳县| 互助| 原平市| 琼海市| 离岛区| 陵川县| 穆棱市| 汨罗市| 舟曲县| 灵武市| 香港 | 依安县| 海宁市| 博罗县| 卫辉市| 霍山县| 莱芜市| 池州市| 忻州市|