存储过程模拟填充数据

最近学习了MYSQL的基础知识后,刚好有一个项目有这样需求:模拟填充数据,展示给客户看。所以就写了这样一个存储过程,来填充模拟数据。当然,这些数据之间没有什么关联性,只是很单纯的一个个独立的数据。如果需要的话,可以自行进行补充相关的逻辑代码。

如下所示:

CREATE DEFINER=`root`@`%` PROCEDURE `proc_data_create`(IN _table varchar(20),IN _database varchar(20),IN _number int(11),IN _id int(11))
BEGIN
# _table : 表名;
# _database : 数据库名;
# _number : 添加条数;
	DECLARE _column varchar(20); #表字段
	DECLARE _column_type varchar(20); #字段类型
	DECLARE _columns varchar(500) DEFAULT ''; #所有字段
	#DECLARE _value varchar(225);
	DECLARE _values text DEFAULT '';
	DECLARE _values_group longtext DEFAULT '';
	DECLARE _count INT;
	DECLARE i INT DEFAULT 1;
	DECLARE j INT DEFAULT 0;
	
-- 	SET @s = '';
-- 	SET @sql_temp = '';
	SET @t = _table;
	SET @d = _database;
	SET @n = _number;
	
	#查询字段数量
set _cou
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你可以使用EasyExcel的write方法进行填充数据。如果数据量很大,可以考虑分批次填充数据,这样可以减少内存占用和提高程序性能。具体的实现方式可以参考以下步骤: 1. 定义一个ExcelWriter对象,用于创建Excel文件并写入数据。 2. 定义一个List集合,将需要填充数据分批次添加到该集合中。 3. 定义一个for循环,遍历List集合,每次遍历时将集合中的数据写入Excel中。 4. 在每次写入数据之后,清空List集合,释放内存。 下面是一个示例代码,以写入10000条数据为例: ```java // 定义ExcelWriter对象 ExcelWriter writer = EasyExcel.write(filePath).build(); // 定义List集合 List<DataDTO> dataList = new ArrayList<>(); // 模拟生成10000条数据 for (int i = 0; i < 10000; i++) { DataDTO data = new DataDTO(); data.setName("name" + i); data.setAge(i); dataList.add(data); } // 定义分批次写入数据的数量 int batchSize = 1000; // 定义写入数据的次数 int writeTimes = dataList.size() % batchSize == 0 ? dataList.size() / batchSize : dataList.size() / batchSize + 1; // 分批次写入数据 for (int i = 0; i < writeTimes; i++) { int startIndex = i * batchSize; int endIndex = (i + 1) * batchSize; endIndex = endIndex > dataList.size() ? dataList.size() : endIndex; List<DataDTO> subList = dataList.subList(startIndex, endIndex); // 写入数据到Excel writer.write(subList, EasyExcel.writerSheet(0, "Sheet1").head(DataDTO.class).build()); // 清空List集合 subList.clear(); } // 关闭ExcelWriter对象 writer.finish(); ``` 在上述代码中,我们将需要填充数据存储在一个List集合中,然后使用for循环进行分批次写入数据。每次写入数据之后,使用subList.clear()方法清空List集合,释放内存。这样就可以实现分批次填充数据了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值