<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插入數據時沒有一點問題,但更新數據的時候出現亂碼的問題,
    找了好久,后來發現是這個問題。

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

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

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

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


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


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

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

    評論:
    # re: hibernate更新數據出現亂碼的問題 2008-01-10 09:49 | bike
    這不算是更新出現的亂碼吧,應該是查詢傳參不對造成的
      回復  更多評論
      
    主站蜘蛛池模板: 99re6热视频精品免费观看| 亚洲一区二区在线免费观看| 一二三四影视在线看片免费| 亚洲国产综合精品中文第一区| 免费网站看av片| 亚洲成色在线影院| 中文字幕天天躁日日躁狠狠躁免费| 亚洲AV无码不卡无码| 久久精品免费一区二区三区| 亚洲AV无码乱码在线观看富二代| 久久这里只精品99re免费| 亚洲人成网www| 在线视频精品免费| 亚洲精品无码国产片| 哒哒哒免费视频观看在线www| 午夜在线免费视频| 精品国产亚洲一区二区三区 | 天堂亚洲国产中文在线| 成人性生交大片免费看无遮挡| 亚洲av成人一区二区三区在线播放 | 日韩精品亚洲aⅴ在线影院| 免费看黄的成人APP| 久久亚洲精品成人AV| 青青青国产在线观看免费网站| 亚洲无人区码一二三码区别图片| 免费一级毛片在线播放不收费| 一级片在线免费看| 久久精品国产亚洲AV麻豆网站| 18禁成年无码免费网站无遮挡| 免费无遮挡无码视频在线观看| 国产亚洲一区二区精品| 毛色毛片免费观看| 巨胸狂喷奶水视频www网站免费| 亚洲视频在线一区二区三区| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 四虎免费影院ww4164h| 狠狠入ady亚洲精品| 亚洲国产精品久久久久婷婷老年| 在线观看免费成人| 免费av片在线观看网站| 亚洲av日韩aⅴ无码色老头|