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