posts - 89,  comments - 98,  trackbacks - 0

          本來認為Hibernate是不用SQL的,事實也是這樣,但是我們還是需要學習一套新的QL,不過它叫HQL。

          相比較SQL而言,Hibernate更為的面向對象,更符合面向對象的定義。

          而SQL則需要在數據庫的兼容問題上不斷的標準化。否則,我想不同數據庫標準的SQL的兼容始終是在底層數據存儲架構方面的一個難題。

          相對 于Criteria而言,HQL在面向對象方面要遜于前者,但是由于官方的推崇標準,HQL是我們主要研究的對象。就個人感覺 Criteria更為好用。就像我們更習慣應用:PreparedStatement語句一樣.

          不過從今天開始我們要學習一種新的QL--HQL。

          先從它的實體查詢說起吧。之所以是實體查詢就是因為它是對POJP實體類而言的,它們又對應著數據庫表。因此叫他實體查詢,實際上就是在查詢數據庫表。但是它的查詢要看實體類的情況,它可能包括繼承的子類,如果想使用父類實體的查詢的話我們很可能也會查出相關的子類表的數據。

          HQL = "from Tuser "

          以及HQL = "from org.hibernate.Tuser"等都是等價的。

          而后者則是面向實體類而言的,前者則是面向數據表。它就相當于“Select... from Tuser"

          有一點要注意HQL是無關大小寫的,但是當涉及到類及相關的屬性的時候
          一定要注意大小寫的。


          同時還要注意:就是相關實體的繼承問題。

          如果TUser類下面有兩個子類TSysUser,TAdminUser,那么當我們用上面的查詢語句去查詢的時候也會把相關的子類表的信息查出來。這一點一定要牢記。



          AS,WHERE子句及相關查詢比較操作符的使用。

          同SQL一樣,HQL當中也有AS,Where子句的使用,同時AND子句,及其相關的查詢條件的比較操作符都存在。使用情況情況大致與SQL一樣。因此掌握SQL使用的用戶在學習起來應訪相對 的簡單。

          "from Tuser as user where user.age ="20" and sex="0" "

          相關操作符也可以使用:<,<=,>,>=,<>,bewtten, in,not bewtten,is ,not in,like等




          posted on 2006-07-24 10:46 水煮三國 閱讀(1005) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿(4)

          隨筆分類(85)

          隨筆檔案(89)

          文章分類(14)

          文章檔案(42)

          收藏夾(37)

          java

          oracle

          Sybase

          搜索

          •  

          積分與排名

          • 積分 - 211645
          • 排名 - 266

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 三明市| 乳山市| 驻马店市| 石林| 昭苏县| 且末县| 河源市| 图片| 宁陵县| 香河县| 黑河市| 黑山县| 嘉兴市| 汕头市| 永顺县| 永仁县| 东方市| 宁强县| 新竹县| 冀州市| 读书| 康乐县| 井研县| 仁化县| 都昌县| 曲周县| 勐海县| 崇阳县| 东丽区| 贵南县| 涟源市| 正定县| 宁乡县| 安泽县| 嘉鱼县| 南木林县| 佳木斯市| 隆回县| 得荣县| 昌都县| 乃东县|