hibernate的中文問(wèn)題的解決方案
系統(tǒng)配置:win2k3 server,jsdk 1.5.0 rc,mysql 4.0.20a,hibernate 2.1.0 ,elcipse 3.0.1
問(wèn)題描述:在使用hibernate作為數(shù)據(jù)持久層的方案時(shí),照樣會(huì)遇到中文問(wèn)題,具體情況時(shí)插入到數(shù)據(jù)庫(kù)中的漢字顯示為??,顯示數(shù)據(jù)時(shí)漢字為??
探索: 經(jīng)過(guò)試驗(yàn)發(fā)現(xiàn)與漢字編碼有關(guān)的地方有以下兩處,一個(gè)是數(shù)據(jù)庫(kù)連接url ,一個(gè)是編程時(shí)獲取Configuration 類的實(shí)例的語(yǔ)句的方式。
方案1:
??? * 編程時(shí)獲取Configuration 類的實(shí)例的語(yǔ)句為
??? * new Configuration().addClass(xx.class);
??? 必須在hibernate.properties文件里數(shù)據(jù)庫(kù)連接url后加上?characterEncoding=gbk&useUnicode=true
方案2:
??? * 編程時(shí)獲取Configuration 類的實(shí)例的語(yǔ)句為
??? * new Configuration().configure().
??? 在hibernate.cfg.xml文件的<session-factory/>塊中設(shè)置
??????? <property name="connection.useUnicode">true</property>
??????? <property name="connection.characterEncoding">UTF-8</property>
??? 或編程時(shí)寫(xiě):
????? Properties extraProperties = new Properties();
????? extraProperties.put("hibernate.connection.useUnicode", "true");
????? extraProperties.put("hibernate.connection.characterEncoding", "UTF-8");
????? myConfiguration.addProperties(extraProperties);
原來(lái)懷疑與xml頁(yè)面的編碼有關(guān)試了一下,好像不起作用。
posted on 2006-05-08 14:42 feingto 閱讀(458) 評(píng)論(2) 編輯 收藏 所屬分類: Java Web