列式存储(二)JFinal如何处理从前台传回来的二维数组
上一篇说到了列式存储,这一篇说它的存储问题,将每个模块的所有属性字段单独存到一张表中,新增页面时,所有的字段都去数据库请求,这样多个模块的新增功能可以共用一个jsp。由于每个模块的字段个数不一样,有的多有的少,这就导致用post请求发送数据时参数个数不能写死,于是只好把整个dataArray传给后台,以前没用过这种写法,自己又是个菜鸟,就用了一个很笨的办法,就是用for循环加getPara()方法接收数据。具体方法见代码:
dataArray结构:

js发送post请求,将数组dataArray作为参数传给后台
function postData() {
$.post("saveData", {
"dataArray" : dataArray, //dataArray是一个二维数组,每个数组元素均为一个对象
"dataArrayLength" : dataArray.length
}, function(data) {
window.history.back();
});
return false;
}
Controller接收数据
public void saveData() {
int dataArrayLength= getParaToInt("dataArrayLength");
List<DataModel> dataList = getParams(dataArrayLength);
boolean result = DataService.srv.saveData(dataArrayLength, dataList); //将数据存到数据库中
}
private List<DataModel> getParams(int dataArrayLength) {
List<DataModel> dataList = Lists.newArrayList();
for (int i = 0; i < dataArrayLength; i++) {
DataModel dataModel = new DataModel();
dataModel.id = getPara("dataArray[" + i + "][ID]");
dataModel.resId = getPara("dataArray[" + i + "][RES_ID]");
dataModel.resType = getPara("dataArray[" + i + "][RES_TYPE]");
dataModel.fieldId = getPara("dataArray[" + i + "][FIELD_ID]");
dataModel.fieldName = getPara("dataArray[" + i + "][FIELD_NAME]"); //属性名
dataModel.dataValue = getPara("dataArray[" + i + "][DATA_VALUE]"); //属性值
dataModel.fieldType = getPara("dataArray[" + i + "][FIELD_TYPE]");
dataModel.fieldSort = getPara("dataArray[" + i + "][FIELD_SORT]");
dataModel.allowNull = getPara("dataArray[" + i + "][ALLOW_NULL]");
dataList.add(dataModel);
}
return dataList;
}
由于一个字段在数据库中即是一条数据,因此汪数据库存储dataList时需要用到事务。
列式存储(二)JFinal如何处理从前台传回来的二维数组的更多相关文章
- 列式存储(三)JFinal DB.tx()事务
上一篇中说道了列式存储中新增表单时后台接收数据问题,在存入数据库时一次插入多条数据,就要用到事务. JFinal中有个封装好的事务应用,用起来非常方便简单. 写法1: Db.tx(new IAtom( ...
- 为什么列式存储会被广泛用在 OLAP 中?
大家好,我是大D. 不知是否有小伙伴们疑问,为什么列式存储会广泛地应用在 OLAP 领域,和行式存储相比,它的优势在哪里?今天我们一起来对比下这两种存储方式的差别. 其实,列式存储并不是一项新技术,最 ...
- 列式存储 V.S. 行式存储
列式数据库 http://zh.wikipedia.org/wiki/%E5%88%97%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93 列式存储与行式存储 http://my ...
- HBase 是列式存储数据库吗
在介绍 HBase 是不是列式存储数据库之前,我们先来了解一下什么是行式数据库和列式数据库. 行式数据库和列式数据库 在维基百科里面,对行式数据库和列式数据库的定义为:列式数据库是以列相关存储架构进行 ...
- 开源列式存储引擎Parquet和ORC
转载自董的博客 相比传统的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐(注:列式存储不是万能高效的,很多场景下行式存储仍更加高效),尤其是在数据列(column)数很多,但每次 ...
- oracle 12c 列式存储 ( In Memory 理论)
随着Oracle 12c推出了in memory组件,使得Oracle数据库具有了双模式数据存放方式,从而能够实现对混合类型应用的支持:传统的以行形式保存的数据满足OLTP应用:列形式保存的数据满足以 ...
- 【HBase】与关系型数据库区别、行式/列式存储
[HBase]与关系型数据库区别 1.本质区别 mysql:关系型数据库,行式存储,ACID,SQL,只能存储结构化数据 事务的原子性(Atomicity):是指一个事务要么全部执行,要么不执行,也就 ...
- Linux系统:Centos7下搭建ClickHouse列式存储数据库
本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...
- [转载] 【每周推荐阅读】C-Store:列式存储数据库
Record-based与column-based是数据库和存储系统里面两种不同的data layout.我们的思维逻辑是基于行记录的,即Record-based data layout,数据记录都是 ...
随机推荐
- [Asp.net 5] Configuration-新一代的配置文件(神奇的Binder)
关于配置文件的目录:[Asp.net 5] Configuration-新一代的配置文件 之前看过MVC4.0的源码,里面就有Binder.作用是将前台页面传递过来的键值对/字典表绑定到特定的对象.此 ...
- Socket开发框架之数据加密及完整性检查
在前面两篇介绍了Socket框架的设计思路以及数据传输方面的内容,整个框架的设计指导原则就是易于使用及安全性较好,可以用来从客户端到服务端的数据安全传输,那么实现这个目标就需要设计好消息的传输和数据加 ...
- C#开发Windows服务的基础代码
做项目需要对Windows服务进行操作,从网上找了一些资料,总结如下: (以下程序在程序中测试通过) using System; using System.Collections.Generic; u ...
- .NET 中获取调用方法名
在写记录日志功能时,需要记录日志调用方所在的模块名.命名空间名.类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下: 需要添加相应的命名空间: us ...
- Bzoj 2038---[2009国家集训队]小Z的袜子(hose) 莫队算法
题目链接 http://www.lydsy.com/JudgeOnline/problem.php?id=2038 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色 ...
- 算法实质【Matrix67】
动态规划 :你追一个MM的时候,需要对该MM身边的各闺中密友都好,这样你追MM这个问题 就分解为对其MM朋友的问题,只有把这些问题都解决了,最终你才能追到MM. 因此,该问题适用于聪明的MM,懂得“看 ...
- Atitit. 获取cpu占有率的 java c# .net php node.js的实现
Atitit. 获取cpu占有率的 java c# .net php node.js的实现 通过wmic接口获取cpu占有率 C:\Users\Administrator.ATTILAXPC188&g ...
- 初识Spring框架
一.Ioc 1)概念:Ioc(Inversion Of Control)控制反转,也被称为依赖注入DI(Dependency Injection),是面向对象编程的一种思想. 2)作用:用来减低程序代 ...
- [转]浅谈php web安全
原文地址:http://blogread.cn/it/article/6086?f=wb 前言: 首先,笔记不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记.细心总结文章,里面有 ...
- clip-path
html代码: <div> <img src="BC0C62C1B1962A8A.jpg"> </div> css代码: img{ clip-p ...