搬磚頭

          Knocking on Heaven's Door
          posts - 34, comments - 6, trackbacks - 0, articles - 0

          Hibernate實(shí)現(xiàn)Clob和Blob對象的存取

          Posted on 2007-11-02 16:17 生活在別處 閱讀(3594) 評論(3)  編輯  收藏 所屬分類: Java
                  項(xiàng)目開發(fā)中,碰到的問題,原先設(shè)計(jì)的字段,定為VARCHAR2類型,最大長度為4000 bytes,實(shí)際的應(yīng)用中,內(nèi)容往往超過兩千漢字,沒辦法正常插入,因此改為clob大字段類型。
                  采用Hibernate,實(shí)現(xiàn)Clob和Blob對象的存取, 網(wǎng)上有很多解決方案,但是比較老,實(shí)際運(yùn)用中,可能會碰到各種問題。下面是我采用的方案,比較簡單,希望對碰到這個問題的人,有幫助。
                  目前oracle的driver已經(jīng)支持JDBC 直接操作 CLOB了,但是使用舊的driver的時候,會遇到各種問題,如2k字符的問題。
                   最新的oracle10g的driver,已經(jīng)解決了這些問題。我項(xiàng)目用ojdbc14-10.2.0.3.0.jar 連接oracle9i數(shù)據(jù)庫,可以正常讀寫CLOB。
                   Hibernate存取Clob和Blob對象,將 clob用string方式處理。
                   Hibernate Annotations方式,只要映射成Lob類型就可以,對該字段的讀寫,就是一般的操作方式。

                  @Lob
              public String getTxt() {
                  
          return txt;
              }

                  好了,就是這么簡單!

          Feedback

          # re: Hibernate實(shí)現(xiàn)Clob和Blob對象的存取   回復(fù)  更多評論   

          2007-11-03 19:41 by lan
          這樣的方法的確可行,我去年也是這么解決的。當(dāng)時還參照了javaeye上很多的文章,尤其是robbin的。經(jīng)過測試,只能這樣在9i上跑,對于8i和10g都是不行的。
          建議使用spring對于Lob的封裝處理!

          # re: Hibernate實(shí)現(xiàn)Clob和Blob對象的存取 [未登錄]  回復(fù)  更多評論   

          2007-11-05 08:37 by 壞男孩
          我崇尚簡單,喜歡這種方式!!

          # re: Hibernate實(shí)現(xiàn)Clob和Blob對象的存取   回復(fù)  更多評論   

          2007-11-05 12:59 by 紅藍(lán)鉛筆
          能詳細(xì)點(diǎn)嗎?配置文件能貼出來嗎?
          主站蜘蛛池模板: 得荣县| 江都市| 章丘市| 隆昌县| 博罗县| 宁波市| 宜黄县| 荥阳市| 时尚| 汽车| 祁阳县| 正镶白旗| 潞西市| 赞皇县| 沿河| 柏乡县| 阳原县| 哈密市| 吉木萨尔县| 延津县| 金川县| 会理县| 博白县| 大理市| 缙云县| 乾安县| 昆明市| 宜春市| 宿州市| 长泰县| 洪雅县| 抚顺市| 泰兴市| 湟源县| 金门县| 沅陵县| 嘉义市| 石台县| 西林县| 奉节县| 乐东|