• 利用csv文件批量编辑更新sql


       历史表(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文件就出来了

  • 相关阅读:
    NopCommerce4.2 常见错误及异常处理
    使用NopCommerce微信电商系统
    简单理解Socket
    html5 postMessage解决跨域、跨窗口消息传递
    html5 Web Workers
    node.js module初步理解
    node.js调试
    最简单的JavaScript模板引擎
    简单JavaScript模版引擎优化
    容易被忽略CSS特性
  • 原文地址:https://www.cnblogs.com/SimonHu1993/p/11880734.html
Copyright © 2020-2023  润新知