正确设置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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值