<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-208  評論-469  文章-30  trackbacks-0

    hibernate插入數(shù)據(jù)時沒有一點問題,但更新數(shù)據(jù)的時候出現(xiàn)亂碼的問題,
    找了好久,后來發(fā)現(xiàn)是這個問題。

    hibernate3使用了新的hsql解釋器,使用了antlr。如果在hsql正文中直接使用中
    文的話,會出現(xiàn)亂碼,例如:

    String s = "張三";
    String hsql = "from User where username='"+s+"'";
    List list = session.createQuery(hsql).list;
    這種查詢不會出結(jié)果。因為整個語句在被antlr解釋后會有亂碼。

    好的寫法是:
    String s = "張三";
    String hsql = "from User where username=?"
    List list = session.createQuery(hsql).setString(0,s).list;
    這就不會有問題。

    原因:第二種方式,是hibernate在antlr解釋完了以后,再把參數(shù)傳入,這個時候
    就不會有亂碼了。


    即使沒有這個問題,也最好不要在sql語句中帶上很多的變量參數(shù)。hibernate這種
    思想是對的:sql和變量分離開來,不要把兩者混在一起。


    另外,如果使用hibernate2則不會有上面的問題,因為hibernate2使用的是舊版的
    hsql解釋器。但hibernate2的語法不如hibernate3豐富。

    posted on 2007-05-11 21:44 EricWong 閱讀(985) 評論(1)  編輯  收藏 所屬分類: Java

    評論:
    # re: hibernate更新數(shù)據(jù)出現(xiàn)亂碼的問題 2008-01-10 09:49 | bike
    這不算是更新出現(xiàn)的亂碼吧,應(yīng)該是查詢傳參不對造成的
      回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲精品无码国产| 亚洲国产成人久久综合野外| 久久亚洲精品成人av无码网站| 中文字幕无码免费久久9一区9| 色噜噜AV亚洲色一区二区| 二级毛片免费观看全程| 国产乱子伦精品免费无码专区| 亚洲欧美日韩综合久久久| 毛片在线免费视频| 亚洲人成色4444在线观看| 国产精品无码一二区免费| 亚洲youwu永久无码精品| 国产成人免费a在线视频色戒| 国产成人人综合亚洲欧美丁香花| 国产yw855.c免费视频| 国产精品久久久久久亚洲影视 | 亚洲av无码成人精品区在线播放| 色偷偷亚洲第一综合| 亚洲精品麻豆av| a毛片在线免费观看| 亚洲精品在线播放| 最近中文字幕免费mv视频8| 国产精品久久久久久亚洲影视| 亚洲中文字幕伊人久久无码| 日本高清免费观看| 亚洲av无码片在线观看| 四虎永久在线免费观看| 国产日韩AV免费无码一区二区三区| 亚洲制服中文字幕第一区| 成人免费毛片内射美女APP| 国产成人亚洲毛片| 亚洲国产精品一区第二页| 1000部夫妻午夜免费| 国产精品自拍亚洲| 亚洲av中文无码乱人伦在线咪咕| 69堂人成无码免费视频果冻传媒| 四虎一区二区成人免费影院网址| 亚洲国产一区二区三区青草影视| 成年人性生活免费视频| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 国产一级理论免费版|