瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          clob blob

          Posted on 2009-11-02 15:01 瘋狂 閱讀(361) 評論(0)  編輯  收藏 所屬分類: java database
          mysql   的機制其實應該是這樣的:當你數據庫緩存中的數據量達到tmp_table_size時,它會自動提交一次,然后繼續接下來的操作,每tmp_table_size刷新數據庫緩存

             MySQL 中的 BLOB 數據由四種類型體現,分別是 TINYBLOB 其容量為 256 字節、BLOB 其容量為 64KB、MEDIUMBLOB 其容量為 16MB、LONGBLOB 其容量為 4GB。

            CLOB類型默認為1m 如果大于的話可能會出現

             Packet for query is too large (37748784 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable

           異常 這是可以在

          [mysqld]下面添加 max_allowed_packet=10M來擴大限制

          在 jdk 6。0 以前 向數據庫插入clob 和blob數據的操作方法:

           void setBinaryStream(int parameterIndex, java.io.InputStream x, int length)方法

          而在jdk 6.0以后就可以用

          void setClob(int parameterIndex, Reader reader)

          void setBlob(int parameterIndex, InputStream inputStream)方法來插入clob/blob

          讀取時候可以用讀取流來處理或者用:

          clob的時候可以

          用 Clob.getSubString(pos, length)不過length是個int型的

          或者用

          Java代碼 復制代碼
          1. Clob c = rs.getClob("clumn");   
          2. StringBuffer a = new StringBuffer(1024);   
          3. Reader r = c.getCharacterStream();   
          4. char[] cc = new char[1];   
          5. int i = -1;   
          6. while((i =r.read(cc))!=-1){   
          7.     a.append(cc);   
          8. }  

           讀取blob可以用:

          Blob b = rs.getBlob("clumn");
           java.io.InputStream getBinaryStream ()或者getBytes(pos, length)

           

          主站蜘蛛池模板: 鄂尔多斯市| 正镶白旗| 苗栗县| 甘南县| 尤溪县| 辽阳县| 岑巩县| 大厂| 安阳县| 清镇市| 小金县| 金寨县| 遵义市| 阳朔县| 赤壁市| 含山县| 博兴县| 大丰市| 油尖旺区| 鄯善县| 玛曲县| 德昌县| 洛阳市| 吐鲁番市| 遵化市| 曲麻莱县| 芦山县| 高邑县| 吉隆县| 威海市| 西吉县| 法库县| 宝鸡市| 乌兰察布市| 昭觉县| 西贡区| 萝北县| 洞口县| 三门峡市| 井研县| 贞丰县|