學(xué)習(xí)園地

          BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
            3 Posts :: 14 Stories :: 0 Comments :: 0 Trackbacks

          常用鏈接

          留言簿

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          最近用 Scala & Lift 做個小項目,用到H2數(shù)據(jù)庫。結(jié)果在對中文字段進行排序時發(fā)現(xiàn)點問題。在不設(shè)置Collation的情況下,對中文字段的排序結(jié)果是亂的(誰讓中國人喜歡拼音排序呢)。發(fā)現(xiàn)這一現(xiàn)象后,將Collation設(shè)為 CHINESE_CHINA看看(注意設(shè)置collation要在數(shù)據(jù)庫中還沒創(chuàng)建任何表的時候喔), set collation CHINESE_CHINA 結(jié)果還是不盡如人意,雖然絕大多數(shù)記錄排序是正確的(按拼音排序),但還是有少量比較生僻的字給單獨排在了最后。試想如果某個領(lǐng)導(dǎo)的名字按拼音排序本來要排在前面的,結(jié)果因為生僻字給排到了最后,被領(lǐng)導(dǎo)發(fā)現(xiàn)了會不會不高興給你小鞋穿呢?要盡善盡美怎么辦呢?查了一下H2的文檔,講到設(shè)置collation的時候可以調(diào)用 ICU4J(ICU for java)來替代使用內(nèi)置的collation機制。(不知道ICU,你out了吧,要不要google一下先?!)。 到ICU網(wǎng)站下載了icu4j.jar,將其加入到 CLASSPATH中,重啟H2的服務(wù)。再次創(chuàng)建數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫后立即在沒有創(chuàng)建表的情況下輸入下列命令設(shè)置collation: set collation ICU4J_CHINESE_CHINA 再次說明,如果已經(jīng)創(chuàng)建了表,此命令是無效的喔。將collation設(shè)置為ICU4J_CHINESE_CHINA 后,中文排序就OK了!
          posted on 2014-02-12 16:53 丘比特 閱讀(294) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 留坝县| 泰来县| 临清市| 龙海市| 松阳县| 论坛| 寿宁县| 三穗县| 贺兰县| 磐安县| 上饶市| 东乡族自治县| 涞水县| 吕梁市| 杭锦后旗| 黑水县| 津市市| 永州市| 大足县| 马尔康县| 黔西县| 偃师市| 舞钢市| 贡山| 萨迦县| 云安县| 武川县| 中卫市| 旌德县| 历史| 天全县| 泰来县| 吴堡县| 德惠市| 监利县| 宜宾县| 海安县| 常州市| 嘉善县| 临沭县| 弥勒县|