天天看點

正确設定H2資料庫的Collation解決中文排序問題

    在不設定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了!

來自:http://www.cnblogs.com/agateriver/archive/2012/04/21/h2_collation.html

H2

繼續閱讀