列式存储(二)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,数据记录都是 ...
随机推荐
- Think different
Here's to the crazy ones.The misfits.The rebels.The troublemakers.The round pegs in the square holes ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [三] 配置式爬虫
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 上一篇介绍的基本的使用方式,虽然自由度很高,但是编写的代码相对还是挺多.于是框 ...
- HoverTree项目添加了查看留言列表功能
HoverTree项目添加了查看留言列表功能 页面:HoverTreeWeb项目下hvtpanel/usermessage/messagelist.aspx 添加留言页面:addmessage.asx ...
- js中的延迟执行和定时执行
在js中,延迟执行函数有两种,setTimeout和setInterval,用法如下: function testFunction(){Console.log('hovertree.com');} s ...
- 在Excel中使用频率最高的函数的功能和使用方法
在Excel中使用频率最高的函数的功能和使用方法,按字母排序: 1.ABS函数 函数名称:ABS 主要功能:求出相应数字的绝对值. 使用格式:ABS(number) 参数说明:number代表需要求绝 ...
- grep命令的使用
grep是UNIX和LINUX中使用最广泛的命令之一.grep允许对文本文件进行模式查找.如果找到匹配模式, grep打印包含模式的所有行.grep支持基本正则表达式,也支持其扩展集.grep有三种变 ...
- CodeSmith连接Oracle
Win7上仅安装了Oracle32位客户端,此时CodeSmith无法连接Oracle数据库. 解决方法一:如果同一台电脑安装了Oracle64位数据库,这样CodeSmith可以连接数据库. 解决方 ...
- An Introduction to Stored Procedures in MySQL 5
https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...
- 第 1 章 Bootstrap 介绍
学习要点:1.Bootstrap 概述2.Bootstrap 特点3.Bootstrap 结构4.创建第一个页面5.学习的各项准备 主讲教师:李炎恢 本节课我们主要了解一下 Boostrap 历史.特 ...
- Scalaz(40)- Free :versioned up,再回顾
在上一篇讨论里我在设计示范例子时遇到了一些麻烦.由于Free Monad可能是一种主流的FP编程规范,所以在进入实质编程之前必须把所有东西都搞清楚.前面遇到的问题主要与scalaz Free的Free ...