关于hibernate的中文排序
来源:互联网 发布:mysql高级教程 编辑:程序博客网 时间:2024/06/06 02:07
我的第一篇博客,文笔好像不太好 请见谅!
方法一、描写叙述:给Hibernate的MySQL方言包注冊一个排序方法,该方法中实现了MySQL中文排序。
代码:
public class MySQLExtendDialect extends MySQLDialect { public MySQLExtendDialect(){ super(); registerFunction("convert_gbk", new SQLFunctionTemplate(Hibernate.STRING, "convert(?1 using gbk)") ); } }
该方法的弊端是须要改不同数据的方言包来实现不改代码的跨库。(须要改order by field 为 order by convert_gbk(field))。
方法二、描写叙述:单独改动Hibernate的MySQL方言包,改动order by方法,使该方法默认使用convert方法来实现中文排序。
代码:
public class MySQLGBKDialect extends MySQLDialect{ public MySQLGBKDialect() { } 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); }}
renderOrderByElement该方法为复写父类中的方法,长处是不用改其它数据方言包,不用改代码,缺点是全部的排序方法将都运行convert方法。
方法三(推荐使用)、描写叙述:首先查出该表的全部数据放入到list中,然后可以使用集合的辅助类collections.sort()进行排序。
代码:
public List<Object> sortByName(){
List<Object> ObjectList=dao.findAll();
Collections.sort(ObjectList,new Comparator<Object>(){
public int compare(Object o1, Object o2) {
String b1 = (String)o1.getName(); //获取实体的名称
String b2 = (String)o2.getName();
Collator cmp = Collator.getInstance(java.util.Locale.CHINA); //中文
if (cmp.compare(b1, b2)>0){
return 1;
}else if (cmp.compare(b1, b2)<0){
return -1;
}
return 0;
}
});
return ObjectList;
}
以上是正序,倒序就把上面大于换成小于,小于换大于;或者-1 变1 ,1变-1 ;
另外如要实现点击 列表的表头实现正序和倒序,可以传递一个数字给服务器,每点击一次表头让这个数字自增1,后台可以根据这个数字奇偶性来进行正序和倒序。
第一篇博客ctrl+v写完了 ,有点激动!!!
- 关于hibernate的中文排序
- 解决Hibernate中MySQL的中文排序
- mysql5+hibernate中文排序
- Hibernate使用中文排序.
- 关于解决hibernate的一些中文问题
- 关于hibernate+mysql中文乱码的问题
- 关于hibernate集合的排序问题
- 关于mysql中文排序的方法
- 关于mysql中文排序的方法
- 关于数据库字段的中文排序
- 关于PostgreSql的指定中文排序问题
- Hibernate 实现Oracle的中文汉字按照拼音排序
- 关于Hibernate 查询语句中文乱码问题的解决
- 关于 Hibernate 存储数据到 MySQL 中文乱码的问题
- Hibernate 实现Oracle的中文汉字按照拼音排序 之延续,通用的查询排序能力。
- 关于手机联系人的中文字母排序问题
- hibernate支持中文排序(mysql)
- hibernate 用hql做中文排序
- Codeforces Round #378 (Div. 2)A. Grasshopper And the String
- js预加载图片
- 谷歌浏览器扩展程序-实现按钮自动连续点击
- 长按tableview弹出相关菜单
- Android Studio 2.2.2编译第一个项目
- 关于hibernate的中文排序
- 用十条命令在一分钟内检查Linux服务器性能
- iOS中URL字符串的URLencode与URLdecode
- sklearn回归简单示例
- java导出excel 下载文件
- Failed to resolve : com.android.support:appcompat-v7:24.2.0
- FIFO跨时钟域读写
- CentOS 配置静态IP地址
- Hadoop安装