學習園地

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            3 Posts :: 14 Stories :: 0 Comments :: 0 Trackbacks
          最近用 Scala & Lift 做個小項目,用到H2數據庫。結果在對中文字段進行排序時發現點問題。在不設置Collation的情況下,對中文字段的排序結果是亂的(誰讓中國人喜歡拼音排序呢)。發現這一現象后,將Collation設為 CHINESE_CHINA看看(注意設置collation要在數據庫中還沒創建任何表的時候喔),

          set collation CHINESE_CHINA 

          結果還是不盡如人意,雖然絕大多數記錄排序是正確的(按拼音排序),但還是有少量比較生僻的字給單獨排在了最后。試想如果某個領導的名字按拼音排序本來要排在前面的,結果因為生僻字給排到了最后,被領導發現了會不會不高興給你小鞋穿呢?要盡善盡美怎么辦呢?查了一下H2的文檔,講到設置collation的時候可以調用 ICU4J(ICU for java)來替代使用內置的collation機制。(不知道ICU,你out了吧,要不要google一下先?!)。 到ICU網站下載了icu4j.jar,將其加入到 CLASSPATH中,重啟H2的服務。再次創建數據庫,創建數據庫后立即在沒有創建表的情況下輸入下列命令設置collation:

          set collation ICU4J_CHINESE_CHINA 

          再次說明,如果已經創建了表,此命令是無效的喔。將collation設置為ICU4J_CHINESE_CHINA 后,中文排序就OK了!
          posted on 2014-02-12 16:50 丘比特 閱讀(203) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 隆回县| 石屏县| 五莲县| 寻乌县| 广西| 中阳县| 西青区| 土默特左旗| 罗平县| 株洲县| 上饶市| 阿拉尔市| 临泉县| 金平| 曲沃县| 丰都县| 和政县| 克什克腾旗| 余江县| 鹰潭市| 翁牛特旗| 永和县| 丰镇市| 宁城县| 武邑县| 宜君县| 廉江市| 嘉兴市| 博乐市| 陆丰市| 准格尔旗| 龙里县| 日照市| 礼泉县| 乌拉特前旗| 望谟县| 滨州市| 大厂| 如皋市| 东安县| 浪卡子县|