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