Opencsvを用いてsql文−−−操作excelまたはcsvの研究を生成する


データベースにデータをインポートする必要がある場合がありますが、手に持っています.xlsまたはcsv形式のドキュメントデータに加え、論理的なワイヤが直接データベースにインポートできない場合、opencsvを使用してcsvドキュメントを読み取り、sql文にグループ化してデータベースにインポートできます.
次は私が書いた例です.その中にはカスタマイズされたものがたくさんあります.もし彼に使う必要があれば、相応の修正をしなければなりません.これはopencsvに対する考え方と簡単な応用を提供するものである.
この例を組み合わせたsql文はコンソールに直接打たれ、対応するファイルを生成するように修正することができます.

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import au.com.bytecode.opencsv.CSVReader;

public class CsvDemo {
    public static final File tempFile = new File("./test1.csv");
    public static int constantVale = 15300;

    public static void main(String[] args) throws IOException {
        createSqlPart1();
    }

    public static List<Object> createSql(String[] nextLine) {
        List<Object> strList = new ArrayList<Object>();
        List<String> propList = new ArrayList<String>();

        StringBuffer sql = new StringBuffer();
        sql = sql
                .append("Insert into FOG.T_TAG_INFO(TAGID, TAGNAME_ZH, TAGNAME_EN,CAREA, CITY, TAGTYPEID, TAGLEVEL, CLICKNUM)Values(");
        constantVale = constantVale + 1;
        sql.append(constantVale);
        if (nextLine != null) {
            for (int i = 0; i < nextLine.length; i++) {
                String[] prop;
                if (i == nextLine.length - 1) {
                    prop = nextLine[i].split("-");
                } else {
                    prop = null;
                }
                if (prop != null) {
                    for (int j = 0; j < prop.length; j++) {
                        StringBuffer sqlprop = new StringBuffer();
                        sqlprop = sqlprop.append("INSERT INTO FOG.T_TAG_PROP (TAGID, PROP) VALUES (");
                        sqlprop.append(constantVale);
                        sqlprop.append(",");
                        sqlprop.append("'" + prop[j] + "'");
                        sqlprop.append(");");
                        propList.add(sqlprop.toString());
                    }
                }
                if (nextLine[i] != null && !nextLine[i].trim().equals("") && !(i == nextLine.length - 1)) {
                    sql.append(",");
                    sql.append("'" + nextLine[i].replaceAll("'", "''") + "'");
                }

            }
            sql.append(",10,1,0);");
            strList.add(sql.toString());
            strList.add(propList);
        }
        return strList;
    }

    public static void createSqlPart1() throws IOException {
        CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(tempFile), "gb2312"));

        String[] nextLine;
        while ((nextLine = reader.readNext()) != null) {
            List<Object> list = createSql(nextLine);
            System.out.println(list.get(0));
        }
        reader.close();
    }

    public static void createSqlPart2() throws IOException {
        CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(tempFile), "gb2312"));

        String[] nextLine;
        while ((nextLine = reader.readNext()) != null) {
            List<Object> list = createSql(nextLine);
            List<Object> listProp = (List<Object>) list.get(1);
            for (Object prop : listProp) {
                System.out.println((String) prop);
            }
        }
        reader.close();
    }
}