`
juzhibest
  • 浏览: 55288 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

mysql数据库java端查询List的排名排序方法

阅读更多
Mysql好像不提供排名函数.

网络上的其他什么方法好像可以排序,
也有些对于同分数算名次的处理不够好.
正好工程里有写的排序list (SortListTools)
就在它之上进行了一下扩展.
排序+算名词.其实很简单的.


一般sql查询出来的结果格式为:
list:{[map][map][map][map][map]....}
针对map的某一列排名操作.


rankList方法为传入要排序的list,设置排序列,设置输出名词列.
返回就是排序之后的List.


/**
 * 
 *  这里填写类说明
 * @author Juz
 * Mar 30, 2012
 */
@Deprecated
public class SortListTools implements Comparator{
	
	private String key;
	//property
	public void doSortkey (String key) {
		this.key = key;
	}
	
	public int compare(Object arg0, Object arg1) {
		Map m1 = (Map) arg0;
		Map m2 = (Map) arg1;
		int flag = 0;
		
		float id1 = Float.parseFloat(m1.get(key).toString());
		float id2 = Float.parseFloat(m2.get(key).toString());
		if ( id2 > id1) {
			flag = 1;
		}else if (id1 < id2) {
			flag = -1;
		}
		return flag;
	}
}





 /**
	 *  List指定列排名.
	 * @param liinfo list:{[map][map][map]....}
	 * @param string  key 指定排序map的key
 	 * @param string  minckey  指定输出排序的key
	 * @return	List 
	 * @author Juz
	 */
	public List rankList(List liinfo, String key, String minckey) {
		// TODO Auto-generated method stub
		int thisv = 1;
		int nextv = 0;
		float sscore =0;
		float tscore =0;
		Map thism =null;
		Map nextm = null;
		SortListTools st = new SortListTools();
		st.doSortkey(key);
		Collections.sort(liinfo, st);
		for(int i=0;i<liinfo.size();i++){
			((Map)liinfo.get(i)).put(minckey, i+1);
		}
		for(int i=0;i<liinfo.size();i++){
			if(i<liinfo.size()-1){
				thism = (Map)liinfo.get(i);
				thisv = Integer.parseInt(thism.get(minckey).toString());
				sscore = Float.parseFloat(thism.get(key).toString());
				nextm =  (Map)liinfo.get(i+1);
				tscore = Float.parseFloat(nextm.get(key).toString());
				if(sscore-tscore<0.0001){
					nextm.put(minckey, thisv);
				}else{
					nextm.put(minckey, thisv+1);
				}
			}
		}
		return liinfo;
	}
0
0
分享到:
评论

相关推荐

    MySQL_数据库实现的JAVA_分页实例

    在这个"MySQL_数据库实现的JAVA_分页实例"中,我们将探讨如何在Java后端实现对MySQL数据库的分页查询,这对于大数据量的展示和优化用户体验至关重要。 首先,理解分页的基本概念:分页是将大量数据分为多个小部分,...

    JAVA 注册界面连数据库+集合排序

    标题中的“JAVA 注册界面连数据库+集合排序”揭示了两个主要的知识点:Java编程以及数据库连接,特别是与MySQL数据库的交互,同时涉及到数据结构的排序处理。 首先,让我们深入探讨Java编程。Java是一种广泛使用的...

    JFinal实例(mysql数据库)

    总结来说,"JFinal 实例(mysql数据库)"是一个展示如何利用 JFinal 框架和 MySQL 数据库开发 Web 应用的示例。通过这个实例,我们可以学习到如何设置数据库连接、创建 Model 类、执行 SQL 查询以及处理事务。这个...

    java语言的分页查询功能(mysql和sql server)

    本教程将详细讲解如何在Java中实现不分框架的分页查询,同时涵盖对MySQL和SQL Server数据库的支持。 一、基础知识 1. 分页概念:分页是将大量数据按一定数量分成若干部分,每次只加载一部分到内存中显示,用户可以...

    Java+数据库面试题.zip

    Java和数据库技术是IT行业中不可或缺的部分,特别是在软件开发和数据管理领域。以下是对"Java+数据库面试题.zip"中可能包含的重要知识点的详细说明: 1. **Java基础**: - **面向对象编程**:包括类、对象、封装、...

    Hibernate的MySql查询.rar

    总的来说,Hibernate通过其强大的ORM能力简化了Java与MySQL数据库的交互,提供了丰富的查询方式和事务管理机制,极大地提高了开发效率。掌握这些核心知识点,对于提升JavaEE项目的开发质量与效率有着重要作用。希望...

    从Mysql数据库中导出表结构信息到Excel中.zip

    本压缩包文件“从Mysql数据库中导出表结构信息到Excel中.zip”显然涉及到两个关键知识点:如何从Mysql数据库导出表结构,并将这些信息转换成Excel格式。 首先,我们来看如何从Mysql数据库导出表结构信息。这通常...

    mysql数据库命令

    ### MySQL数据库常用命令详解 #### 一、连接MySQL服务器 - **命令格式**:`mysql -u 用户名 -p` - `-u` 后跟用户名; - `-p` 后可直接输入密码或按回车键后提示输入密码。 #### 二、创建数据库 - **命令格式**:...

    java数据库系统开发案例精选(上)

    这个项目可以教授如何使用Java集合框架,如List、Set和Map,以及如何实现数据的排序和过滤。同时,也可能涉及到文件操作,例如保存和读取学生数据到CSV或XML文件。 通过这些项目,读者不仅可以掌握Java编程基础,还...

    Echarts+ajax+java+mysql实现饼图+折线图+柱状图

    Java作为后端开发语言,负责处理前端发送的Ajax请求,查询MySQL数据库,并返回所需的数据。这里可能涉及到Spring Boot或Servlet等框架,用于构建RESTful API,以便前端通过HTTP请求获取数据。同时,Java还可能负责...

    Java和Mysql的分页程序

    在这个“Java和Mysql的分页程序”中,我们将探讨如何利用Java进行数据库连接管理,以及如何设计有效的MySQL分页查询。 首先,Java中的数据连接池是一种管理数据库连接的有效机制,它能显著提高应用的性能和效率。...

    Java Servlet 数据库分页功能演示.rar

    6. **处理结果**:将查询结果转化为Java对象,比如List集合,以便在前端展示。 7. **发送响应**:将数据包装到HTTP响应中,通常是JSON或HTML格式,然后通过ServletResponse对象发送回客户端。 8. **关闭资源**:...

    mysql 递归查询 树型结构 代码逻辑

    ### MySQL 递归查询树型结构的代码逻辑详解 ...这种方法不仅适用于MySQL,对于其他支持递归查询的数据库也同样适用。在实际项目开发中,合理利用递归查询能够极大地简化对层次结构数据的操作和处理。

    MYSQL

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的性能 ...

    java编写的基于mysq limit的分页小插件

    MySQL数据库提供了`LIMIT`关键字,用于实现数据的分页查询,但直接在Java代码中处理可能会导致SQL语句过于复杂,不易维护。基于此,我们讨论的是一种名为"基于MySQL LIMIT的Java分页小插件"的工具,它可以帮助开发者...

    MySQL中文参考手册.chm

    9.1.1 用于数据和排序的字符集 9.1.2 增加一个新的字符集 9.1.3 多字节字符支持 9.2 更新日志 9.3 MySQL数据库表可以有多大? 9.4 MySQL数据库表类型 10 从 MySQL 得到最大的...

    java_DWR递归函数实现城市的省市县三级联动

    在Java开发中,DWR(Direct Web Remoting)是一个强大的工具,它允许JavaScript与服务器端的Java代码进行实时交互,从而实现动态Web应用。在这个场景中,"java_DWR递归函数实现城市的省市县三级联动" 提供了一个利用...

    Java面试解析总结:Java+Redis+数据库+解决方案+分布式...docx

    - **B+Tree索引**:最常用的索引类型,适合范围查询和排序。 - **Hash索引**:适合等值查询,但在某些情况下可能不支持范围查询。 - **SQL查询优化**:合理的索引策略和优化的SQL语句可以显著提升查询效率,例如...

    MySQL中文参考手册

    + 7.1.5 数据库,表,索引,列和别名的命名 # 7.1.5.1 名字的大小写敏感性 o 7.2 用户变量 o 7.3 列类型 + 7.3.1 列类型的存储要求 + 7.3.5 数字类型 + 7.3.6 日期和时间类型 # 7.3.6.1 问题和日期类型 # ...

Global site tag (gtag.js) - Google Analytics