隨筆-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方法查詢(xún)數(shù)據(jù)

            public void testQuery(){
                
          try
           {
                 Query q 
          = session.createQuery("from Admin where id=?"
          );
                 q.setInteger(
          0,2);//這里的?跟JDBC的PreparedStatement方法的差不多,只不過(guò)這里的是以0開(kāi)始,jdbc的是1開(kāi)始。

                 System.out.println("Query方法查詢(xún)數(shù)據(jù)");
                 
          //q.setFirstResult(2);//
          查詢(xún)結(jié)果從第幾行開(kāi)始列出數(shù)據(jù)
                 
          //q.setMaxResults(10);//
          取多少條數(shù)據(jù),就跟SQL SERVER的TOP方法和MYSQL的LIMIT方法一樣的意思。
                 
          // ScrollableResults sc=q.scroll();//得到一個(gè)ScrollableResults,可滾動(dòng)的,如果你的數(shù)據(jù)庫(kù)支持游標(biāo)自由移動(dòng)的話(huà)可以加上,也就是說(shuō)可以判斷查詢(xún)結(jié)果有沒(méi)有值,或者移動(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方法查詢(xún)數(shù)據(jù)
            public void testFind(){
              
          try
           {
                List lt 
          = session.find("from Admin"
          );
                System.
          out.println("find方法查詢(xún)數(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方法查詢(xún)數(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ù)庫(kù)連接

              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語(yǔ)句把符合條件的記錄載入內(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 閱讀(734) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java
          MSN:envoydada@hotmail.com QQ:34935442
          主站蜘蛛池模板: 鄂州市| 三江| 宜宾市| 新疆| 黄骅市| 桓台县| 忻城县| 叙永县| 鄢陵县| 鸡东县| 科技| 安仁县| 安徽省| 尖扎县| 东明县| 富平县| 延津县| 石柱| 文登市| 留坝县| 平乡县| 宜丰县| 岗巴县| 大名县| 宁海县| 大余县| 来宾市| 天津市| 庐江县| 蕉岭县| 仪陇县| 会东县| 潮安县| 长葛市| 黑河市| 岫岩| 钦州市| 罗源县| 张家口市| 耿马| 岑溪市|