正确设置H2数据库的Collation解决中文排序问题

H2 专栏收录该内容
1 篇文章 0 订阅

    在不设置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
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值