[英]My SQL - getting values for specific search and then adding and finally putting in another column of same table
我想添加執行某個查詢后獲得的某個搜索的值,最后將它們分別放在同一個表的不同列中。
select TotalAmount from Payment_Data where CreatedAt like "%04-07%", 插入 VendorPIAmount;
就像我在執行頂級查詢后得到了值,但我不知道如何添加它們,最后將它們放在另一列中。
借助一些現有的庫,並且很容易實現這個function,但是如果你的數據量比較大,fastexcel是apache poi的一個很好的替代品。參考: Z5E056C500A1C4B6A7110A1C4B6A7110A1C4B6A710A1C4B6A7110.com另外/dtimexcel。 , hutool 是一個很棒的工具集合,可以很方便的操作數據庫。 它還有很多其他常用功能,日期格式轉換,字符串處理等。參考: https://github.com/dromara/hutool
package com.example.demo;
import cn.hutool.core.io.FileUtil;
import cn.hutool.db.DbUtil;
import cn.hutool.db.ds.simple.SimpleDataSource;
import org.dhatim.fastexcel.Color;
import org.dhatim.fastexcel.Workbook;
import org.dhatim.fastexcel.Worksheet;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.OutputStream;
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.List;
public class DataExportTest {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
/**
* export data to excel
*/
@Test
public void Test2() {
LocalDateTime start = LocalDateTime.now();
try (OutputStream os = FileUtil.getOutputStream("D:\\tmp\\TEST_DATA_2_EXCEL.xlsx")) {
SimpleDataSource ds = new SimpleDataSource("jdbc:mariadb://localhost:3306/litemall", "root", "rooter", "org.mariadb.jdbc.Driver");
List<String> list = DbUtil.use(ds).query("SELECT TotalAmount from Payment_Data where CreatedAt like ?", String.class, "%04-07%");
Workbook wb = new Workbook(os, "MyApplication", "1.0");
Worksheet ws = wb.newWorksheet("Sheet 1");
ws.value(0, 0, "VendorPIAmount");
ws.style(0, 0).fillColor(Color.GRAY2).set();
for (int i = 0; i < list.size(); i++) {
ws.value(i + 1, 0, list.get(i));
}
wb.finish();
} catch (Exception e) {
logger.error("Error", e);
}
LocalDateTime end = LocalDateTime.now();
logger.info("Cost time {}", Duration.between(start, end).toMillis() + "ms");
}
}
依賴性:
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>org.dhatim</groupId>
<artifactId>fastexcel-reader</artifactId>
<version>0.12.12</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.16</version>
</dependency>
代碼中使用的表是根據您的描述在本地 mariadb 數據庫中創建的。 DDL 如下。
-- ----------------------------
-- Table structure for payment_data
-- ----------------------------
DROP TABLE IF EXISTS `payment_data`;
CREATE TABLE `payment_data` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`CreatedAt` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
`TotalAmount` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of payment_data
-- ----------------------------
INSERT INTO `payment_data` VALUES (1, 'DCBA01-17ABCD', 'AAA');
INSERT INTO `payment_data` VALUES (2, 'DEDCB02-32BCDE', 'BBB');
INSERT INTO `payment_data` VALUES (3, 'ASDF04-07FDSA', 'CCC');
INSERT INTO `payment_data` VALUES (4, 'ZXCV04-07VCXZ', 'DDD');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.