首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

CSV资料操作

2012-12-20 
CSV文件操作package me.testimport java.io.Fileimport java.io.IOExceptionimport java.sql.Connectio

CSV文件操作

package me.test;import java.io.File;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.List;import org.skife.csv.CSVReader;import org.skife.csv.SimpleReader;/** * 说明:作为示例,将CSV中的数据插入到数据库中。 * 注意:仅仅是功能性示例,没有try...catch...,请自行追加,并确认该如何commit和rollback。 *  *  * 数据库DDL: *    CREATE TABLE USER (ID INT , NAME VARCHAR(45), PRIMARY KEY(ID)); * * CSV文件(C:/t.csv)中的数据内容  *    1, 张三  *    2, 李四  *    3, 王五 *  * 参考第三方类库:  * MySQL Jdbc驱动包  *    http://www.mysql.com/products/connector/  * Apache commons CSV -> Skife CSV -> csv-1.0.jar *    http://commons.apache.org/sandbox/csv/ *  * @author btpka3@163.com */public class Csv2DB {    // 测试代码    @SuppressWarnings("unchecked")    public static void main(String args[]) throws ClassNotFoundException,            SQLException, IOException {        // 加载驱动类        Class.forName("org.gjt.mm.mysql.Driver");        // 创建数据库连接        String url = "jdbc:mysql://localhost:3306/test";        String userName = "root";        String password = "123456";        Connection conn = DriverManager.getConnection(url, userName, password);        String sql = "INSERT INTO USER(ID, NAME) VALUES(?,?)";        PreparedStatement stmt = conn.prepareStatement(sql);        conn.setAutoCommit(false);        CSVReader reader = new SimpleReader();        // CSV 文件路径        String csvFilePath = "C:/t.csv";        // CSV 文件中是否有一条头部记录(非数据,类似于列名)        boolean hasHeaderRec = false;        List<String[]> recList = reader.parse(new File(csvFilePath));        for (int i = 0; i < recList.size(); i++) {            String[] rec = recList.get(i);            if (i == 0 && hasHeaderRec) {                continue; // 跳过头部记录            }            stmt.clearParameters();            stmt.setInt(1, Integer.valueOf(rec[0]));            stmt.setString(2, rec[1]);            stmt.execute();        }        stmt.close();        conn.commit();        conn.close();        System.out.println("success");    }}
从西藏学

热点排行