如何将从list集合中取出的数据一次性修改,再一次性保存?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将从list集合中取出的数据一次性修改,再一次性保存?相关的知识,希望对你有一定的参考价值。

list集合中读出了多条数据,我如何在对多条数据修改后,一次性把多条数据的值全部取到?<c:forEach items="$certmetaentry" var="certmetaentrys">
<td><input type="text" value="$certmetaentrys.subject"></td>
<td><input type="text" value="$certmetaentrys.brief"></td>
<td><input type="text" value="$certmetaentrys.detail"></td>
如何得出所有的数据?

参考技术A request.getParameterValues("certmetaentry");

用java代码将从数据库中取出的具有父子关系的数据转成json格式

思路:
①、取出数据中的所有父节点放入一个集合中
②、取出数据中所有为该父节点的子节点放入另一个集合中
③、用到迭代的方法将子节点一层一层的遍历
工具类:
package com.assasion.test;

import net.sf.json.JSONArray;

import java.util.ArrayList;
import java.util.List;

public class TreeBuilder {


List<CompanyNode> nodes = new ArrayList<CompanyNode>();

public TreeBuilder(List<CompanyNode> nodes) {
super();
this.nodes= nodes;
}

/**
* 构建JSON树形结构
* @return
*/
public String buildJSONTree() {
List<CompanyNode> nodeTree = buildTree();
JSONArray jsonArray = JSONArray.fromObject(nodeTree);
return jsonArray.toString();
}

/**
* 构建树形结构
* @return
*/
public List<CompanyNode> buildTree() {
List<CompanyNode> treeNodes = new ArrayList<CompanyNode>();
List<CompanyNode> rootNodes = getRootNodes();
for (CompanyNode rootNode : rootNodes) {
buildChildNodes(rootNode);
treeNodes.add(rootNode);
}
return treeNodes;
}

/**
* 递归子节点
* @param node
*/
public void buildChildNodes(CompanyNode node) {
List<CompanyNode> children = getChildNodes(node);
if (!children.isEmpty()) {
for(CompanyNode child : children) {
buildChildNodes(child);
}
node.setChild(children);
}
}

/**
* 获取父节点下所有的子节点
* @param pnode
* @return
*/
public List<CompanyNode> getChildNodes(CompanyNode pnode) {//传入父节点对象,如果为该父节点的子节点,则放入子节点集合中
List<CompanyNode> childNodes = new ArrayList<CompanyNode>();
for (CompanyNode n : nodes){//从nodes中筛选所以为pnode的子节点
if (pnode.getCybh().equals(n.getSj_cybh())) {
childNodes.add(n);
}
}
return childNodes;
}

/**
* 判断是否为根节点
* @param node
* @return
*/
public boolean rootNode(CompanyNode node) {
boolean isRootNode = true;
for (CompanyNode n : nodes){//从nodes中筛选所以父节点
if (node.getSj_cybh().equals(n.getCybh())) {//判断传入的node对象中,他的上级成员编号还有没有node中的成员编号与之对应,如果没有,则为根节点
isRootNode= false;
break;
}
}
return isRootNode;
}

/**
* 获取集合中所有的根节点
* @return
*/
public List<CompanyNode> getRootNodes() {
List<CompanyNode> rootNodes = new ArrayList<CompanyNode>();
for (CompanyNode n : nodes){
if (rootNode(n)) {
rootNodes.add(n);//把所以的根节点放入rootNodes集合中
}
}
return rootNodes;
}
}
实体类:
package com.assasion.test;

import java.util.List;

public class CompanyNode {
private String name ;//公司名称
private String cybh;//成员编号
private String sj_cybh;//上级成员编号
private List<CompanyNode> child;//下级公司

public CompanyNode() {
}

public CompanyNode(String name, String cybh, String sj_cybh,List<CompanyNode> child) {
this.name = name;
this.cybh = cybh;
this.sj_cybh = sj_cybh;
this.child=child;
}

public List<CompanyNode> getChild() {
return child;
}

public void setChild(List<CompanyNode> child) {
this.child = child;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getCybh() {
return cybh;
}

public void setCybh(String cybh) {
this.cybh = cybh;
}

public String getSj_cybh() {
return sj_cybh;
}

public void setSj_cybh(String sj_cybh) {
this.sj_cybh = sj_cybh;
}
}




























































































































































以上是关于如何将从list集合中取出的数据一次性修改,再一次性保存?的主要内容,如果未能解决你的问题,请参考以下文章

如何取出数组中相同的对象

Python:如何一次从数据框中迭代 3 行值?然后再一次下一个 3 个值? [复制]

如何使用java代码向oracle数据库一次性插入多条数据

如何一次性同步内存中的集合与其后备数据库表

如何从Java List中取出前100的数据并且删除掉?

java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!