隨筆 - 15  文章 - 5  trackbacks - 0
          <2009年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          在hibernate.cfg.xml配置文件中配置
          <property name="hibernate.jdbc.fetch_size">50</property>
          //每次查詢50條
          <property name="hibernate.jdbc.batch_size">50</property>
          //每次更新50條

          posted @ 2009-03-16 18:03 simplye 閱讀(846) | 評論 (0)編輯 收藏
          1 List students =session.createQuery("select c.name, count(s) from Student s join s.classes c " +
          2                     "group by c.name order by c.name").list();
          3             for (Iterator iter=students.iterator(); iter.hasNext();) {
          4                 Object[] obj = (Object[])iter.next();
          5                 System.out.println(obj[0+ "" + obj[1]);
          6             }
          posted @ 2009-03-05 22:43 simplye 閱讀(875) | 評論 (0)編輯 收藏
          1.
          List students = session.createQuery("select c.name, s.name from Student s inner join s.classes c").list();
                      for (Iterator iter=students.iterator(); iter.hasNext();) {
                          Object[] obj = (Object[])iter.next();
                          System.out.println(obj[0] + "," + obj[1]);
                      }

          2.
          //左連接
          List students = session.createQuery("select c.name, s.name from Classes c left join c.students s").list();
                      for (Iterator iter=students.iterator(); iter.hasNext();) {
                          Object[] obj = (Object[])iter.next();
                          System.out.println(obj[0] + "," + obj[1]);
                      }

          posted @ 2009-03-05 22:37 simplye 閱讀(2619) | 評論 (0)編輯 收藏
          /*
          構建HQL語句進行查詢
          */
          1.
          Query query = session.createQuery("select s.id, s.name from Student s where s.name like ? ");
          //用?占位符
          query.setParameter(0, "%1%");
          //添加查詢條件
          List students = query.list();
          //返回查詢列表


          2.
          //可以用in()來進行多條件查詢,使用setParameterList把所有的查詢的條件放入list中
          //可以用 :參數  來傳遞參數
          List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids) ")
                                 .setParameterList(myids, new Object[]{1,2})
                                 .list();
           
          3.
          //日期查詢語句
          List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=? ")
                                 .setParameterList(0, 2009-1)
                                 .list();

          4.
          //日期段的查詢

          //首先構建一個日期對象
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

          List students = session.createQuery("select s.id, s.name from Student s where s.createTime between ? and ? ")
                                 .setParameter(0, sdf.setparse("2009-1-1 00:00:00"))
                                 .setParameter(1, sdf.setparse("2009-2-1 23:59:59"))
                                 .list();

          posted @ 2009-03-05 16:20 simplye 閱讀(6416) | 評論 (1)編輯 收藏
          web容器:給處于其中的應用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接口交互,不必關注其它系統(tǒng)問題。主要有WEB服務器來實現。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴格遵守J2EE規(guī)范中的WEB APPLICATION 標準。我們把遵守以上標準的WEB服務器就叫做J2EE中的WEB容器。

          EJB容器:Enterprise java bean 容器。更具有行業(yè)領域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進行高效率的管理。并且可以通過現成的接口來獲得系統(tǒng)級別的服務。例如郵件服務、事務管理。

          JNDI:(Java Naming & Directory Interface)JAVA命名目錄服務。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應用程序的功能。

          JMS:(Java Message Service)JAVA消息服務。主要實現各個應用程序之間的通訊。包括點對點和廣播。

          JTA:(Java Transaction API)JAVA事務服務。提供各種分布式事務服務。應用程序只需調用其提供的接口即可。

          JAF:(Java Action FrameWork)JAVA安全認證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現自己的個性安全控制策略。
           
          RMI/IIOP:(Remote Method Invocation /internet對象請求中介協(xié)議)他們主要用于通過遠程調用服務。例如,遠程有一臺計算機上運行一個程序,它提供股票分析服務,我們可以在本地計算機上實現對其直接調用。當然這是要通過一定的規(guī)范才能在異構的系統(tǒng)之間進行通信。RMI是JAVA特有的。
          posted @ 2009-03-05 11:01 simplye 閱讀(2633) | 評論 (0)編輯 收藏
          1.
          /**
          單一屬性查詢
          */
          List s = session.createQuery("select name from Student").list();
          //返回的類型與實體類中相應的屬性類別一直.

          2.
          /**
          多個屬性查詢
          */
          List s = session.createQuery("select id, name from Student").list();
          //查詢多個屬性,返回值為對象的數組
          //數組元素類型和對應的實體類型一直
          //數組長度與查詢的條件相同

          3./**
          返回student實體類,
          還要在實體類中提供空的構造函數,和帶參數的構造函數
          */
          List s = session.createQuery("select new Student(id, name) from Student").list();
          //返回的便是實體類

          4.
          可以實用別名,用as

          5.
          /*
          list()與iterate()方法的區(qū)別.
          */
          iterate()迭代中會發(fā)生N+1的現象,它與session的綁定.當session在緩存中存在時用iterate()會提高一定的效率.沒有在發(fā)生N+1現象
          list()只會向數據庫查詢的SQL,除非配置查詢緩存.

          posted @ 2009-03-04 17:17 simplye 閱讀(321) | 評論 (0)編輯 收藏
          /*
          悲觀鎖
          */
          Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
          // 在數據庫設置為不可重復讀下設置,LockMode為枚舉類型.

          /*
          樂觀鎖
          */
          Inventory inv = (Inventory)session.load(Inventory.class, 1);
          // 在映射文件中添加<version>字段,在讀取時讀取version字段進行判斷,如果version數值小于等于當前數值則報錯.
          posted @ 2009-03-04 14:39 simplye 閱讀(230) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 九寨沟县| 潜江市| 平原县| 大同县| 桐庐县| 南昌县| 敦化市| 唐河县| 绥化市| 苏尼特左旗| 古丈县| 嘉善县| 宁强县| 绩溪县| 繁峙县| 德令哈市| 丹巴县| 泗水县| 凉城县| 云龙县| 松江区| 普定县| 桦甸市| 婺源县| 贵德县| 乐东| 泗洪县| 洞口县| 平南县| 贵南县| 永宁县| 西贡区| 永年县| 陈巴尔虎旗| 额尔古纳市| 阜阳市| 且末县| 桃源县| 连江县| 酒泉市| 桂东县|