您的位置:首页 > 其它

Hibernate中文排序乱序问题

2017-08-15 11:40 525 查看
使用Hibernate操作数据库时,中文排序会出现乱序.主要原因还是编码的问题.对于MySql(其他数据库类似)数据库驱动,Hibernate不支持order by不支持gbk,这就需要修改数据库驱动了:

import org.hibernate.NullPrecedence;
import org.hibernate.dialect.MySQL5InnoDBDialect;

public class MySQLGBKDialect extends MySQL5InnoDBDialect{

public String renderOrderByElement(String expression, String collation, String order, NullPrecedence nulls){
expression = (new StringBuilder("convert(")).append(expression).append(" using 'gbk')").toString();
return super.renderOrderByElement(expression, collation, order, nulls);
}
}


重写mysql驱动后还需要改Hibernate配置文件,需要改为重写的驱动:

<property name="driverClassName" value="${包名.MySQLGBKDialect}" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 编码