怎么用java同时实现批量删除,批量修改

怎么用java同时实现批量删除,批量修改,第1张

/

怎么用java同时实现批量删除,批量修改?

/

//1,可以利用循环批量来 *** 作数组元素

int arr[] = new int[100];//定义一个数组,长度为100

//对该数组进行批量赋值

for (int i = 0; i < arrlength; i++) {

arr[i] = i;

}

//2,对于集合,可以使用removeALL方法进行批量删除

List<String> list = new ArrayList<String>();

listadd("1");

listadd("2");

listadd("3");

listadd("4");

listadd("5");

listremoveAll(list);

Systemoutprintln(list);

//这上是java自带的一些方法

//3,JDBC

/

对于数据库的 *** 作,就需要用SQL语言来批量处理了;

比如:select from EMP;

利用JDBC的一些方法,比如预处理命令,可以对数据库进行批量 *** 作,

/

管理数据库主要做好以下3方面的内容:

一、数据库定期备份

首先利用数据库自带的命令行工具将数据库备份下来,然后将该文件以日期参量重命名。

数据库定期备份的原因:

1)、有些数据是随时变化的,备份可以记录某时间点的数据;

2)、如数据库故障,可以随时还原。

二、数据库优化

1)、进行sql语句的执行优化;

2)、减少应用和数据库的交互次数、同一个sql语句的执行次数;

3)、整理数据库实体的碎片(特别是对某些表经常进行insert和delete动作,尤其注意,索引字段为系列字段、自增长字段、时间字段,对于业务比较频繁的系统,最好一个月重建一次);

4)、减少表之间的关联,特别对于批量数据处理,尽量单表查询数据,统一在内存中进行逻辑处理,减少数据库压力(java处理批量数据不可取,尽量用c或者c进行处理,效率大大提升);

5)、对访问频繁的数据,充分利用数据库cache和应用的缓存;

6)、数据量比较大的,在设计过程中,为了减少其他表的关联,增加一些冗余字段,提高查询性能。

三、数据库日志文件管理

1、查看数据库中日志文件;

默认是三个组,这是数据库创建时自己添加的三个日志文件组;

2、添加日志文件组并添加成员。

mysql的项目,需要设计一个快速上载的机制

最后的解决办法是利用了mysql的预处理语句的特性实现的

mysql的预处理语句支持多行数据的预处理,即insertinto(columnName,columnName,)values(,,)(,,)

这样你在绑定输入参数的时候可以在程序里将整张表的数据都绑定好然后调用一次执行就能将整张表的数据插入,比用mysql_query一行一行插入省的几倍的时间

不过你一次发到mysql服务器端的数据多的情况下,要设置my

ini文件下的一个配置项,把服务器允许一次发送的数据包的大小调大就行

100

应用场景分析:假设有一组已知数量的数据,按照一定的业务处理规则处理并保存数据库,如何提升数据处理的效率并完成数据保存(具体情况具体分析)?此处使用控制台方式模拟输入数据(类比保存数据库处理)。

using System;

using SystemCollectionsConcurrent;

using SystemCollectionsGeneric;

using SystemText;

using SystemThreading;

using SystemThreadingTasks;

namespace ConsoleApi

{

/// <summary>

/// 多线程批量数据处理

/// </summary>

public class MultithreadBatchDataProcessing

{

//线程安全队列

private ConcurrentQueue<ResponseModel> queue = new ConcurrentQueue<ResponseModel>();

/// <summary>

/// 模拟设置数据

/// </summary>

public void SetData()

{

ConsoleWriteLine($"开始数据设置,时间:{DateTimeNow};");

for (int i = 0; i < 10000; i++)

{

var model = new ResponseModel { Code=i, Msg=$"第{i+1}次循环", Data=$"产生随机数:{new Random()Next(1000,10000)}" };

queueEnqueue(model); //模拟数据入队

ThreadSleep(1); //这里是随机数生成时需要

}

ConsoleWriteLine($"10000条数据设置完毕!时间:{DateTimeNow};");

}

/// <summary>

/// 多线程处理数据

/// </summary>

public void MultitDataProcessing()

{

int threadCount = 10; //开启10个线程

for (int i = 0; i < threadCount; i++)

{

string fileName = $"task{i}txt";

//开启新线程

TaskFactoryStartNew(() =>

{

var sb = new StringBuilder();

int j = 0;

//数据循环出队

while (queueTryDequeue(out ResponseModel model))

{

//处理数据

if (model != null)

sbAppendLine($"==》Code={modelCode},Msg={modelMsg},Data={modelData}");

if (j % 100 == 0 || (queueCountEquals(0) && j < 100))

{

ConsoleWriteLine($"每100条输出一次控制台,并暂停100毫秒, 第{i}次文件:{fileName}");

ConsoleWriteLine(sbToString());

sb = new StringBuilder();

ThreadSleep(100);

}

j++;

}

});

}

}

}

}

登录后复制

2 模拟10000条数据批量处理,每100条数据保存一次,调用显示如下:

var mbdp = new MultithreadBatchDataProcessing();

mbdpSetData();

mbdpMultitDataProcessing();

登录后复制

C# 多线程批量数据处理演示Demo完毕。保存数据库时可以创建DataTable采用SqlBulkCopy每100条推入一次即

以上就是关于怎么用java同时实现批量删除,批量修改全部的内容,包括:怎么用java同时实现批量删除,批量修改、数据库如何管理、大批量插入数据,mysql批量更新与插入多种(数据库批量更新大量数据)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10161566.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存