在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
来源:互联网 发布:标志设计软件手机版 编辑:程序博客网 时间:2024/05/16 08:29
将一些基本的、频繁使用的数据保存为js文件,不仅可以大大减少对服务器的访问,而且有效地改善用户的体验,浏览网页变得非常地流畅。这对提高整个web应用系统的质量非常有好处。以下方法用于将查询结果保存到js文件中。
这里以pvo查询结果为例。
(注:pvo可以看成通用的DAO,查询结果是List<Map>对象,其中Map代表一条记录,List代表查询结果集,Map的key代表字段名。具体参见本人的“HashMap关系数据映射技术(简称PVO技术) ”)
/**
* @param realPath 文件路径
* 创建菜单数据文件,pvoDataMenu.js文件
*/
public void __writerPvoDataMenu(String realPath) {
List v = null;
try {
ProcessVO pvo = new ProcessVO(Db.instance().getCon());
try {
v = pvo.getSomeRecord("select sitemenu_id as id,parent_id,label,pagename,sortnum from sitemenu where user like 'abc' order by sortnum");
} finally {
pvo.closeCon();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
String path = realPath + File.separator + "resource" + File.separator + "js";
File fp = new File(path);
fp.mkdirs();
String jsFile = path + File.separator + "pvoDataMenu.js";
File file = new File(jsFile);
String js = "";
StringBuilder content = new StringBuilder();
content.append("var menu_v=new Array();");
content.append("var m=null;");
for (int i = 0; i < v.size(); i++) {
Map m = (Map) v.get(i);
content.append("m=new Map();");
content.append(jsMap(m));
content.append("menu_v.push(m);");
}
js = content.toString();
try {
file.delete();
file.createNewFile();
BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "GBK"));
bout.write(js);
bout.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
/**
* @param m 一条记录,key是字段名或字段别名
*/
private String jsMap(Map m) {
String s = "";
Set set = m.keySet();
Object[] keys = set.toArray();
for (int i = 0; i < keys.length; i++) {
Object key = keys[i];
Object value = m.get(key);
if (value != null) {
if ("true".equals(value.toString()) || "false".equals(value.toString())) {
s = s + "m.put('" + key + "', " + value.toString() + ");";
} else {
s = s + "m.put('" + key + "', '" + value.toString() + "');";
}
} else {
s = s + "m.put('" + key + "', null);";
}
}
return s;
}
- 在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
- 在JavaWEB中将Ajax动态查询结果转换成List<Map>型JavaScript数组
- 如何把从数据库中查询出的结果保存为List<Map>
- 在JavaScript中实现类似Java中List<Map>类型的数组
- java中将list、map对象写入文件
- java中将list、map对象写入文件
- mybatis查询结果为Map类型
- Java中将数组转化为List
- python中将list分段并保存为array类型
- 【vim】在vim中将unix命令执行的结果保存在vim文件中
- mybatis 查询参数为list、数组、map的情况
- Java中将ResultSet结果集转换为List
- 如果将Java中从数据库查询到的结果集转换为Json数组形式
- 把对数据库的查询结果封装在List中
- 把对数据库的查询结果封装在List中
- java中将数组、对象、Map、List转换成JSON数据
- java中将数组、对象、Map、List转换成JSON数据
- java中将数组、对象、Map、List转换成JSON数据
- hadoop IPC/RPC 机制
- Labview机器视觉(2)-摄像头连续图像获取
- Oracle 在线重定义(将普通堆表转换成分区表)
- FCKeditor问题以及解决
- struts-2.1.7包含DTD学习
- 在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
- MySQL存储过程及java中存储过程的调用
- 2011-11-16 ( 从KMP算法体现的思想 和 快排平均时间复杂度为什么是O(nlgn) )
- hbase 架构
- C调用Zlib库解压文件示例
- DTD 语法快速指南
- 两个有序数组找第k小的数
- 说说Android桌面(Launcher应用)背后的故事(一)——揭开她神秘的面纱
- jdk环境变量设置