無聊人士

          搬家==》www.soapui.cn

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            32 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks
          最近在“玩”hibernate Annotation,弄了個Attachment保存進數據庫的測試,附件內容保存在content屬性里面。
          ??@Lob
          ??@Column(columnDefinition?
          =?"LongBlob")
          ??
          public?byte[]?getContent()?{
          ????
          return?content;
          ??}
          一開始,配置mysql jdbc url如下
          jdbc.url????????????=????jdbc:mysql://localhost/test\
          ?????????????????????????????useUnicode
          =true\
          ????????????????????????????&characterEncoding
          =gbk
          一測試,報錯
          Caused?by:?java.sql.BatchUpdateException:?Syntax?error?or?access?violation?message?from?server:?"You?have?an?error?in?your?SQL?syntax?near?''D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF0900060000000000000'?at?line?1"
          ????at?com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:
          1540)
          同樣的語句,直接在mysql命令行下運行就沒問題,偏偏jdbc上就有這臭毛病。換jdbc driver版本,改@Lob為 @Type(type = "org.springframework.orm.hibernate3.support.BlobByteArrayType"),改hibernate配置(比如hibernate.jdbc.use_streams_for_binary true),甚至是直接用jdbc來insert,亂七八糟折騰半天,問題照舊。最后只好用上“歪”招,把byte[]配成String,在保存的時候把byte[]保存成hex String格式,取的時候再解碼回來。

          歪招終歸是歪招,這兩天老為這東西心煩,晚上吃飯的時候無意中想起charset的問題,把代碼撿回來再測試了一下,問題解決,哈哈!
          jdbc.url????????????=????jdbc:mysql://localhost/mmwy_blog\
          ?????????????????????????????useUnicode
          =true\
          ????????????????????????????&characterEncoding
          =utf-8
          如果設成iso-8859-1、utf-8,保存一點問題都沒有,換用gbk、gb2312、big5之類的字符集,問題就出來了。

          posted on 2006-10-12 15:54 mmwy 閱讀(1768) 評論(1)  編輯  收藏 所屬分類: HibernateDatabase

          評論

          # re: mysql 3.23.58 charset設置對blob字段操作的影響 2008-12-19 15:40 趙客
          太牛了,我也遇到這個問題了,弄了半天了,高手  回復  更多評論
            

          主站蜘蛛池模板: 察雅县| 五峰| 安远县| 珠海市| 定结县| 紫云| 海城市| 嘉祥县| 井冈山市| 鹤峰县| 宿迁市| 五莲县| 黑山县| 裕民县| 吉水县| 丹东市| 湄潭县| 和林格尔县| 伊宁市| 德兴市| 武鸣县| 克什克腾旗| 闻喜县| 孝昌县| 盐源县| 庄河市| 宁乡县| 北流市| 旬邑县| 任丘市| 巢湖市| 商水县| 全南县| 鹤峰县| 于都县| 德州市| 友谊县| 徐州市| 天镇县| 商南县| 中山市|