`
cuisuqiang
  • 浏览: 3935714 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3650303
社区版块
存档分类
最新评论

自定义表格标签 JDBC查询时的显示转换

    博客分类:
  • J2EE
阅读更多

之前写过一个 手把手教你做一个自定义表格标签 ,这个标签需要后台设置一个JSON数据,然后就能根据自己的定义进行表格化的数据显示

相关地址:http://cuisuqiang.iteye.com/blog/1582942

 

一般,我们通过相关查询得到一个List,在后台通过转换工具将List内容转换为JSON

JSONArray.fromObject(list);

 

如果我们是通过JDBC查询到的,那么返回的往往就是一个包含了Map的List,数据仅仅是查询到的数字化信息,而没有进行相关友好转换

例如,一些数据字典的内容(JSP自定义标签实现数据字典:http://cuisuqiang.iteye.com/blog/1381591),存到数据库的都是数字,那么显示时肯定要进行转换的

如果是详细页面,我们可以通过自定义字典标签来实现,如果是列表页面,我们可以通过SQL查询时直接进行转换

 

但是当数据库数据量过大时,我们为了一个数据显示还把这些转换工作交给数据库,就显得程序处理能力太差了

数据库就是存储数据的,我只把数据给你,其他的不管,这样的做法可以大量提升查询速度和性能,至于增加了服务器的压力,几行数据的转换压力是可以忽略的

 

刚才也说了,JDBC查询返回的是一个包含了Map的List,Map的Value是可以存储任意值的,循环这个List根据自己的需要进行转换即可

例如,数据库的空字段我都设置了 DEFAULT NULL ,我想把NULL的字段都显示为 / 

@SuppressWarnings("unchecked")
public List getRelList(List<Map> list){
	List listRel = new ArrayList();
	Iterator it = list.iterator();
	while(it.hasNext()) {
		Map map = (Map) it.next();
		Set<String> keySet = map.keySet();
		for(String key : keySet){
			String val = map.get(key) + "";
			if("".equals(val) || "null".equals(val)){
				map.put(key, "/");
			}
		}
		listRel.add(map);
	}
	return listRel;
}

 

做法很简单,只是把Map里面的值改变,重新组装了一个List而已

查询到数据后,设置JSON数据时进行下转换

JdbcTemplate jt = (JdbcTemplate) SpringFactory.getObject("jdbcTemplate");
List list = list = jt.queryForList(sql);
JSONArray jsonArr = null;
if (null != list && list.size() > 0) {
	jsonArr = JSONArray.fromObject(getRelList(list));
	request.setAttribute("currentJsonDate", jsonArr.toString());
}

 

上面的代码,还可以根据数据字典方式进行数据字典内容的转换

 

请您到ITEYE网站看原创,谢谢!

http://cuisuqiang.iteye.com/ ! 

自建博客地址:http://www.javacui.com/ ,内容与ITEYE同步!

2
1
分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例045 用数组设置JTable表格的列名与列宽 55 3.2 数组操作 57 实例046 数组的下标界限 57 实例047 按钮控件数组实现计数器界面 58 实例048 复选框控件数组 59 实例049 用数组反转字符串 60 3.3 数组排序与查询 61 ...

    Java语言基础下载

    自定义标签 613 标准标签的使用 618 内容总结 621 独立实战 622 第三十章:struts入门 623 学习目标 623 Struts简介 624 什么是应用框架 624 WEB框架所要解决的问题 625 建立简单的Struts应用 627 内容总结 636 独立...

    javaSE代码实例

    2.3 基本数据类型值间的转换 18 2.3.1 自动转换 18 2.3.2 手动强制转换 19 2.3.3 隐含强制转换 19 2.4 标识符命名规范 20 2.4.1 正确的命名标识符 20 2.4.2 提倡的命名习惯 21 2.5 小结 21 第3章 ...

    java初学者必看

    4.4.3 标签语句 4.5 返回语句 4.6 综合实例:水仙花数 4.7 本章习题 第5章 字符串 5.1 字符串简介 5.1.1 字符串常量 5.1.2 String创建字符串常量 5.1.3 StringBuffer创建字符串 5.2 连接字符串 5.2.1 与...

    Java开发技术大全 电子版

    14.8.1标签(Jlabel)使用示例488 14.8.2按钮(JButton)使用示例491 14.8.3文本框(JTextField)和密码框(JPasswordField)使用示例492 14.8.4文本区(JTextArea)使用示例496 14.8.5复选框(JcheckBox)使用...

    测试培训教材

    显示测试覆盖率饼图: 7、生成自动化测试脚本、BPT模型 产生自动化测试脚本 是否需要实现自动化: 自动化实现“Cruise Search”测试用例: 定位到“Cruise Search”测试用例,在“设计步骤”界面中选择...

    Spring中文帮助文档

    11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. ...

    Spring API

    11.2.7. 执行查询 11.2.8. 更新数据库 11.2.9. 获取自动生成的主键 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. SmartDataSource接口 11.3.3. AbstractDataSource类 11.3.4. ...

    java联想(中文)

    1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和...

    Java学习笔记-个人整理的

    {12.3}创建表格}{152}{section.12.3} {12.4}关于null值}{154}{section.12.4} {12.5}操作符与实例}{154}{section.12.5} {12.5.1}where}{154}{subsection.12.5.1} {12.6}函数}{156}{section.12.6} {12.7}组函数}...

    spring chm文档

    17.7. 在选择这些技术时的一些考虑 18. Enterprise Java Bean(EJB)集成 18.1. 简介 18.2. 访问EJB 18.2.1. 概念 18.2.2. 访问本地的无状态Session Bean(SLSB) 18.2.3. 访问远程SLSB 18.3. 使用Spring提供的...

    JAVA上百实例源码以及开源项目

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    JAVA上百实例源码以及开源项目源代码

    像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java编写的显示器显示模式检测程序 2个目标文件 内容...

    Java开发详解.zip

    031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf 031205_【第12章:JAVA IO】_内存操作流笔记.pdf 031206_【第12章:JAVA IO】_管道流笔记.pdf 031207_【第12章:JAVA IO】_打印流笔记.pdf 031208_【第12章:...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics