历史表(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. fastclick插件中存在的bug

    1.在vue项目中安装fastclick插件 npm install --save fastclick 2.在main.js中引入并绑定到body import FastClick from 'fas ...

  2. js移动端回退监听 popstate

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Go 方法使用

    方法的定义 在 Go 语言里,方法和函数只差了一个,那就是方法在 func 和标识符之间多了一个参数. type user struct { name string, email string, } ...

  4. 【SQL server】SQL server基础(一)

    一.关系型数据库 关系型数据库的基本元素是二维表,这些二维表可以被独立或者通过join语句连接起来使用.主键和外键是用来连接二维表之间的主要工具 1.主键(primary key)和外键(foreig ...

  5. c# 运算符和表达式

  6. HTML块级元素与行内元素的区别

    块级元素:块级大多为结构性标记 <address>...</adderss> <center>...</center> 地址文字 <h1>. ...

  7. 剑指Offer编程题(python)——链表

    1.从尾到头打印链表 #输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.class ListNode: def __init__(self, x): self.val = x self ...

  8. 微信中浏览器支持input调用摄像头和只能上传图片

    <input type="file" capture="camera" accept="image/*" />

  9. 开启 clr enabled

    '; GO RECONFIGURE; GO '; GO RECONFIGURE; '; GO

  10. Python 之 PyMySQL 安装和使用

    Python具有内置的SQLite支持. 在本节中,我们将学习使用MySQL的相关概念和知识. 在早期Python版本一般都使用MySQLdb模块,但这个MySQL的流行接口与Python 3不兼容. ...