無聊人士

          搬家==》www.soapui.cn

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            32 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks
          最近在“玩”hibernate Annotation,弄了個Attachment保存進數(shù)據(jù)庫的測試,附件內(nèi)容保存在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 閱讀(1777) 評論(1)  編輯  收藏 所屬分類: HibernateDatabase

          評論

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


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 广河县| 廉江市| 景德镇市| 阿勒泰市| 南岸区| 霍州市| 澎湖县| 中卫市| 洛川县| 绥德县| 启东市| 铅山县| 屯门区| 漾濞| 罗源县| 永泰县| 南阳市| 慈利县| 平昌县| 冷水江市| 保靖县| 宁城县| 布尔津县| 龙里县| 通江县| 马鞍山市| 南皮县| 澄江县| 龙岩市| 泾川县| 大方县| 杭锦后旗| 天祝| 万年县| 永顺县| 宽甸| 多伦县| 延长县| 金塔县| 柞水县| 罗城|