历史表(popularity_ranking)数据中只存了用户手机号,业务需求中需要新增用户昵称字段,

这里我们用户表和popularity_ranking表在不同数据库中,有两种方法:1.编写后台服务调用不同数据库,

进行sql更新;2.导出csv文件修改sql。因为项目并没有采用多数据源配置,而且表数据量不大,这里我们

采用导出用户表数据,然后根据用户id,昵称批量修改sql导入到popularity_ranking表中。

1.从oracl中导出要用到的字段

2.使用CsvReader进行sql重写

package zhx.com;

import com.csvreader.CsvReader;
import com.csvreader.CsvWriter; import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList; /**
* @Author: SimonHu
* @Date: 2019/11/18 10:16
* @Description:
*/
public class SwitchSql {
public static void main(String[] args) throws IOException {
ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据
//注明:或者可以通过前端上传的文件,用一个方法获取上传文件名uploadName(String)
String csvFilePath = "C:\\Users\\admin\\Desktop\\222.csv";
String csvWriteFilePath = "C:\\Users\\admin\\Desktop\\write.csv";
CsvReader reader = new CsvReader(csvFilePath, ',', Charset.forName("UTF-8")); //解决中文编码
// reader.readHeaders(); // 跳过表头 如果需要表头的话,不要写这句。
while (reader.readRecord()) { //逐行读入除表头的数据
csvList.add(reader.getValues());
}
reader.close();
CsvWriter csvWriter = new CsvWriter(csvWriteFilePath, ',', Charset.forName("UTF-8"));
     //保证输出字符串带引号
     //csvWriter.setForceQualifier(true);
     //指定文本限定符
     //csvWriter.setTextQualifier('"');
    
for (int row = 0; row < csvList.size(); row++) {
String cell0 = csvList.get(row)[0];
String cell1 = csvList.get(row)[1];
String sql = "update popularity_ranking set nick_name='" + cell1 + "' where user_id =" + cell0 + ";";
String[] contents = {sql};
csvWriter.writeRecord(contents);
System.out.println(sql);
}
csvWriter.close();
}
}

重写之后的sql文件就出来了

利用csv文件批量编辑更新sql的更多相关文章

  1. csv文件批量导入数据到sqlite。

    csv文件批量导入数据到sqlite. 代码: f = web.input(bs_switch = {})  # bs_switch 为from表单file字段的namedata =[i.split( ...

  2. Weka里如何将arff文件或csv文件批量导入MySQL数据库(六)

    这里不多说,直接上干货! 前提博客是 Weka中数据挖掘与机器学习系列之数据格式ARFF和CSV文件格式之间的转换(四) 1.将arff文件批量导入MySQL数据库 我在这里,arff文件以Weka安 ...

  3. SQL 读取csv 文件批量插入数据

    use test /* create table temp_pre ( vc_product_id varchar(20) default '', en_in_amount numeric(9,2)d ...

  4. Azure PowerShell (7) 使用CSV文件批量设置Virtual Machine Endpoint

    <Windows Azure Platform 系列文章目录> 请注意: - Azure不支持增加Endpoint Range - 最多可以增加Endpoint数量为150 http:// ...

  5. SSIS 中将csv 文件批量导出到excel 文件,并设置excel 文件中某些列的data column format 为Text

    csv 文件是文本文件类型,但是打开csv 文件后(默认使用本地已经安装的excel 来打开excel 文件),默认显示出来的是general 类型(column data format)的数据, 这 ...

  6. 大数据量的csv文件如何导入到 sql 数据库

    BULK INSERT dbo.T_test001 FROM 'E:\bus_20160316\bus全量评级及借款编号_20160316.csv' WITH ( FIELDTERMINATOR =' ...

  7. 【Python】通过python代码实现demo_test环境的登录,通过csv/txt/excel文件批量添加课程并开启课程操作--(刚开始 项目 页面 模块 元素这种鸟 被称作pageobject 等这些搞完 然后把你的定位器、数据 和脚本在分离 就是传说中那个叫数据驱动 的鸟)

    一.1.通过csv文件批量导入数据 1 from selenium import webdriver from time import ctime,sleep import csv #循环读取每一行每 ...

  8. 将csv文件导入sql数据库

    有一个csv文件需要导入到Sql数据库中,其格式为 “adb”,"dds","sdf" “adb”,"dds","sdf" ...

  9. 关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中

    说明:spark版本:2.2.0 hive版本:1.2.1 需求: 有本地csv格式的一个文件,格式为${当天日期}visit.txt,例如20180707visit.txt,现在需要将其通过spar ...

随机推荐

  1. centos7安装harbor

    harbor是什么? docker容器是集装箱,harbor就是放集装箱的港湾. 一.下载软件: github上选择对应版本下载 https://github.com/goharbor/harbor/ ...

  2. 异常-ERROR yarn.ApplicationMaster: User class threw exception: java.sql.SQLException: Communications link failure

    1 详细异常信息 ERROR yarn.ApplicationMaster: User class threw exception: java.sql.SQLException: Communicat ...

  3. Vs2017 FrameWork EF Mysql Mvc 三层整合1

    1  运行环境   vs2017   Net FromWork 4.6.2  手动版 没有 ado.net 实体数据模型 2 NuGet  MySql.Data.Entity 6.10.9, MySq ...

  4. 安装Vue脚手架和创建一个简单的Demo

    https://www.cnblogs.com/pengjunhao/p/6762141.html https://www.cnblogs.com/yanxulan/p/8978732.html 查看 ...

  5. Map集合中get不存在的key值

    返回的值是null 测试代码 import java.util.HashMap; import java.util.Map; public class Test { public static voi ...

  6. Cloud Native Weekly |面对云平台宕机,企业如何止损

    KubeEdge v0.2发布 KubeEdge在18年11月24日的上海KubeCon上宣布开源的一个开源项目,旨在依托K8S的容器编排和调度能力,实现云边协同.计算下沉.海量设备的平滑接入. Ku ...

  7. mysql中FIND_IN_SET()和GROUP_CONCAT()的使用

    知识点:mysql中FIND_IN_SET和GROUP_CONCAT()的使用 (一) 场景:当我们使用mysql数据库,查询一张的数据,其中的一列存放的是是另一张表id用“,”拼接的字符串 如下图所 ...

  8. Checklist的补充规则

    常见问题: 1.什么时候该补充Checklist? 2.Checklist应该写哪些用例? 3.自己写的模块是否自己执行? 4.什么时候执行Checklist? 5.执行完Checklist大概需要花 ...

  9. 原生JS实现简单富文本编辑器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Python中的基本类型简介

    1.变量 变量不仅可以是数字,还可以是任意数据类型 命名规范:变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线_的组合,且不能用数字开头 python中等号“=”是赋值语句,可以把任意数据 ...