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

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

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

    隨筆-208  評(píng)論-469  文章-30  trackbacks-0

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

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

    String s = "張三";
    String hsql = "from User where username='"+s+"'";
    List list = session.createQuery(hsql).list;
    這種查詢不會(huì)出結(jié)果。因?yàn)檎麄€(gè)語句在被antlr解釋后會(huì)有亂碼。

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

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


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


    另外,如果使用hibernate2則不會(huì)有上面的問題,因?yàn)閔ibernate2使用的是舊版的
    hsql解釋器。但hibernate2的語法不如hibernate3豐富。

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

    評(píng)論:
    # re: hibernate更新數(shù)據(jù)出現(xiàn)亂碼的問題 2008-01-10 09:49 | bike
    這不算是更新出現(xiàn)的亂碼吧,應(yīng)該是查詢傳參不對(duì)造成的
      回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲jizzjizz在线播放久| 亚洲欧美第一成人网站7777| 久久久久久影院久久久久免费精品国产小说 | 精品亚洲456在线播放| 国产精品亚洲综合网站| 韩国欧洲一级毛片免费| 亚洲AV无码精品国产成人| 国产免费直播在线观看视频| 黄色网页免费观看| 在线播放亚洲第一字幕| 久久这里只精品99re免费| 亚洲白嫩在线观看| 四虎影院免费在线播放| 免费一区二区三区在线视频 | 亚洲av乱码一区二区三区香蕉 | 亚洲第一网站免费视频| 人成午夜免费视频在线观看| 亚洲码和欧洲码一码二码三码| 四虎AV永久在线精品免费观看| 伊人久久国产免费观看视频| 亚洲综合AV在线在线播放| 午夜无码A级毛片免费视频| 亚洲精品福利你懂| 亚洲乱码中文字幕综合234| 中文在线免费看视频| 亚洲麻豆精品果冻传媒| 午夜老司机免费视频| 亚洲精品视频免费| 亚洲美女视频一区| 国产免费av片在线无码免费看| 久久WWW免费人成—看片| 亚洲网站在线播放| 免费a级毛片视频| 欧洲人免费视频网站在线| 一本色道久久88亚洲精品综合| 亚洲国产精品无码久久九九| 久久综合给合久久国产免费| 亚洲国产精品无码观看久久| 亚洲成AV人片在线观看无码| 成年人网站在线免费观看| 成人免费乱码大片A毛片|