分页显示数据库数据
来源:互联网 发布:园林绿化施工网络 编辑:程序博客网 时间:2024/06/05 06:35
数据分页显示作为网站显示数据的必备需求之一,每个程序猿都应该懂得如何将获取到的数据进行分页后展示。我今天要分享的不是简单的分页显示数据,而是将获取到的数据转换成JSON格式。如果想要的数据复杂的话,就需要HashMap嵌套ArrayList,ArrayList嵌套HashMap等。具体情况具体分析,我今天用到的就是HashMap嵌套ArrayList,ArrayList再嵌套HashMap。
获取的初始化数据:
{total=35, data=[{school=南京邮电学院, married=0, email=null, age=25, name=张鹏楠},{school=南京邮电学院, married=0,email=xucc198712@qq.com, age=27, name=徐承承},{school=宁波工程大学, married=0,email=xzz@163.com, age=25, name=谢忠哲}],avgAge=27.2857}
格式化以后的数据:
{"total":35, "data":[{"school":"南京邮电学院","married":0,"email":null,"age":25,"name":"张鹏楠},{"school":"南京邮电学院","married":0,"email":"xucc198712@qq.com","age":27,"name":"徐承承},{"school":"宁波工程大学","married":0,"email":"xzz@163.com","age":25,"name":"谢忠哲}],"avgAge":27.2857}
分页展示的效果也就显示了,只给出具体的代码实现吧,还望参考:
<span style="font-size:14px;">import java.sql.Clob;import java.sql.Connection;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.Map;public class TestDB {public static String driver = "com.mysql.jdbc.Driver";public static String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK";public static String user = "root";public static String pwd = "root";/** * * @param index页码 * @param size每页的数据量 * @return返回当前页的数据 * @throws Exception */public HashMap SearchEmployees(int index, int size, String sortField, String sortOrder) throws Exception { String sql = "SQL语句"; //存储总的数据 ArrayList dataAll = DBSelect(sql); //存储当前页要展示的数据 ArrayList data = new ArrayList(); int start = index * size, end = start + size; for (int i = 0, l = dataAll.size(); i < l; i++) { HashMap record = (HashMap)dataAll.get(i); if (record == null) continue; if (start <= i && i < end) { data.add(record); } } HashMap result = new HashMap(); result.put("data", data); result.put("total", dataAll.size()); return result; }/** * * @param sqlsql语句 * @returnsql结果集 * @throws Exception */public ArrayList DBSelect(String sql) throws Exception{ Connection conn = getConn();Statement stmt = conn.createStatement(); ResultSet rst = stmt.executeQuery(sql); ArrayList list = ResultSetToList(rst);rst.close();stmt.close();conn.close(); return list;}private Connection getConn() throws Exception{Class.forName(driver).newInstance();Connection conn = null;if(user == null || user.equals("")){conn = java.sql.DriverManager.getConnection(url);}else{conn = java.sql.DriverManager.getConnection(url, user, pwd);}return conn;}/** * 将ResultSet查询到的结果集以“列名”:“数据”的形式保存到ArrayList数组中 * * @param rssql查询结果集 * @returnArrayList * @throws Exception */private static ArrayList ResultSetToList(ResultSet rs) throws Exception{ ResultSetMetaData md = rs.getMetaData(); int columnCount = md.getColumnCount(); ArrayList list = new ArrayList(); Map rowData; while(rs.next()){ rowData = new HashMap(columnCount); for(int i = 1; i <= columnCount; i++) { Object v = rs.getObject(i); if(v != null && (v.getClass() == Date.class || v.getClass() == java.sql.Date.class)){ Timestamp ts= rs.getTimestamp(i); v = new java.util.Date(ts.getTime()); //v = ts; } rowData.put(md.getColumnName(i), v); } list.add(rowData); } return list;} }</span><span style="font-size:18px;"></span>
得到的Result即可以转化为JSON格式,具体的转化过程忽略……如有需要再补充说明,谢谢。
- 分页显示数据库数据
- JSP数据库数据分页显示
- JSP数据库操作例程 - 数据分页显示
- JSP数据库操作例程 - 数据分页显示
- JSP数据库操数据分页显示
- JSP数据库操作数据分页显示
- JSP数据库操作例程数据分页显示
- asp.net分页显示数据库中的数据
- jsp实现读取数据库数据分页显示
- mfc CListCtrl分页显示数据库数据
- Sqlite数据库分页查询(ListView分页显示数据)
- JSP连接SQL数据库实现数据分页显示
- ssm框架数据库取数据在前台分页显示
- Hibernate数据库分页显示
- 数据库分页显示控件
- Hibernate数据库分页显示
- 数据库分页\分批显示
- 数据分页显示方案
- CentOS 6.6安装Horizon View Client3.4
- 设计模式C++实现(1)——工厂模式
- leetCode 99.Recover Binary Search Tree(修正二叉搜索树) 解题思路和方法
- 关于字典管理颜色,对颜色进行分类管理的问题
- html js form
- 分页显示数据库数据
- 正方形计数问题(穷举+pair+struct/C++)
- JavaScript之正则表达式入门
- js关闭页面不提示
- 通过uri呼起本地app
- org.hibernate.AnnotationException: No identifier specified for entity
- iOS 应用名称的国际化图解
- SAP产品价格
- NoSuchMethodException问题总结