上一篇说到了列式存储,这一篇说它的存储问题,将每个模块的所有属性字段单独存到一张表中,新增页面时,所有的字段都去数据库请求,这样多个模块的新增功能可以共用一个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如何处理从前台传回来的二维数组的更多相关文章

  1. 列式存储(三)JFinal DB.tx()事务

    上一篇中说道了列式存储中新增表单时后台接收数据问题,在存入数据库时一次插入多条数据,就要用到事务. JFinal中有个封装好的事务应用,用起来非常方便简单. 写法1: Db.tx(new IAtom( ...

  2. 为什么列式存储会被广泛用在 OLAP 中?

    大家好,我是大D. 不知是否有小伙伴们疑问,为什么列式存储会广泛地应用在 OLAP 领域,和行式存储相比,它的优势在哪里?今天我们一起来对比下这两种存储方式的差别. 其实,列式存储并不是一项新技术,最 ...

  3. 列式存储 V.S. 行式存储

    列式数据库 http://zh.wikipedia.org/wiki/%E5%88%97%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93 列式存储与行式存储 http://my ...

  4. HBase 是列式存储数据库吗

    在介绍 HBase 是不是列式存储数据库之前,我们先来了解一下什么是行式数据库和列式数据库. 行式数据库和列式数据库 在维基百科里面,对行式数据库和列式数据库的定义为:列式数据库是以列相关存储架构进行 ...

  5. 开源列式存储引擎Parquet和ORC

    转载自董的博客 相比传统的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐(注:列式存储不是万能高效的,很多场景下行式存储仍更加高效),尤其是在数据列(column)数很多,但每次 ...

  6. oracle 12c 列式存储 ( In Memory 理论)

    随着Oracle 12c推出了in memory组件,使得Oracle数据库具有了双模式数据存放方式,从而能够实现对混合类型应用的支持:传统的以行形式保存的数据满足OLTP应用:列形式保存的数据满足以 ...

  7. 【HBase】与关系型数据库区别、行式/列式存储

    [HBase]与关系型数据库区别 1.本质区别 mysql:关系型数据库,行式存储,ACID,SQL,只能存储结构化数据 事务的原子性(Atomicity):是指一个事务要么全部执行,要么不执行,也就 ...

  8. Linux系统:Centos7下搭建ClickHouse列式存储数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...

  9. [转载] 【每周推荐阅读】C-Store:列式存储数据库

    Record-based与column-based是数据库和存储系统里面两种不同的data layout.我们的思维逻辑是基于行记录的,即Record-based data layout,数据记录都是 ...

随机推荐

  1. C#方法的参数

  2. android studio building project info 错误

    D:\ProgramFiles\android-studio\plugins\android\lib\templates\gradle\wrapper\gradle\wrapper\gradle-wr ...

  3. 头文件里面的ifndef /define/endif的作用

    c,c++里面,头文件里面的ifndef /define/endif的作用 今天和宿舍同学讨论一个小程序,发现有点地方不大懂······ 是关于头文件里面的一些地方: 例如:要编写头文件test.h ...

  4. 孙鑫MFC学习笔记17:进程间通信

    17 1.进程间通信4种方式 2.OpenClipboard打开剪贴板 3.EmptyClipboard清空剪贴板,并把所有权分配给打开剪贴板的窗口 4.SetClipboardData设置剪贴板数据 ...

  5. Bash脚本实现批量作业并行化

    http://jerkwin.github.io/2013/12/14/Bash%E8%84%9A%E6%9C%AC%E5%AE%9E%E7%8E%B0%E6%89%B9%E9%87%8F%E4%BD ...

  6. JVM基本原理

    第一节 JVM内存模型 •堆栈简称栈,主要提供以下用途: –保存临时数据 –放置临时变量(局部.自动.堆栈) –保存调用现场 –方法返回值的传递 •堆主要提供以下用途: –存放对象(GC对象) –存放 ...

  7. 快速熟悉Velocity

    果然公司用的东西跟平时学的东西不太一样,我们公司前台页面并不是我们熟悉的.html或者.jsp文件,而是很多人不知道的 .vm文件,其实只要我们理解了jsp文件,vm文件也就是一些基本语法不同而已. ...

  8. 《构建高性能web站点》随笔 无处不在的性能问题

    前言– 追寻大牛的足迹,无处不在的“性能”问题. 最近在读郭欣大牛的<构建高性能Web站点>,读完收益颇多.作者从HTTP.多级缓存.服务器并发策略.数据库.负载均衡.分布式文件系统多个方 ...

  9. mysql Access denied for user root@localhost错误解决方法总结(转)

    mysql Access denied for user root@localhost错误解决方法总结(转) mysql Access denied for user \'root\'@\'local ...

  10. node.js图片上传

    1.node-formidable 对文件上传提供帮助的组件 2.app.js var formidable = require('formidable'); var http = require( ...