csv导入mysql java_使用CSVJDBC导入CSV文件数据到MySQL中

该博客介绍了如何通过Java程序利用CSVJDBC驱动将CSV文件的数据导入到MySQL数据库中。首先加载CsvDriver,然后建立连接并创建Statement对象执行查询。接着从CSV文件中选择特定列,并在MySQL数据库中创建PreparedStatement进行插入操作,逐行设置参数并执行。最后,博主提到这种方法操作CSV文件数据与常规数据库操作相似。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.founder.demo;

import Java.sql.Connection;

import Java.sql.DriverManager;

import Java.sql.PreparedStatement;

import Java.sql.ResultSet;

import Java.sql.Statement;

public class ImportCSV {

public static void main(String[] args) {

try {

// load the driver into memory   Class.forName("org.relique.jdbc.csv.CsvDriver");

// create a connection. The first command line parameter is assumed to

//  be the directory in which the .csv files are held   Connection conn = DriverManager

.getConnection("jdbc:relique:csv:H:\\PythonWorkSpace");

// create a Statement object to execute the query with   Statement stmt = conn.createStatement();

// Select the columns from csv file   ResultSet results = stmt

.executeQuery("SELECT ORDER_NO,ARTICLE_NO,CATALOG_NO,DESCRIPTION,QUANTITY,ISO_UNIT,UNIT,MDL_NO,CAS, "

+ " MOLECULA,FORMULA,DENSITY,PRICE_EUR,UN_NO,DANGER_GR,DANGER_CLASS,ZUSATZGEFAHR1,ZUSATZGEFAHR2,R_PHRASES, "

+ " S_PHRASES,DANGER_SYMBOL,STORAGE_TEMPERATURE FROM ABCR");

//MySQL   Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection con = Java.sql.DriverManager

.getConnection(

"jdbc:mysql://localhost/chemicaldb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull",

"root", "root");

String sql = "INSERT INTO meryer_abcr (ORDER_NO,ARTICLE_NO,CATALOG_NO,DESCRIPTION,QUANTITY,ISO_UNIT,UNIT,MDL_NO,CAS, "

+ " MOLECULA_FORMULA,MOLECULAR_WEIGHT,DENSITY,PRICE_EUR,UN_NO,DANGER_GROUP,DANGER_CLASS,ZUSATZGEFAHR1,ZUSATZGEFAHR2,R_PHRASES, "

+ " S_PHRASES,DANGER_SYMBOL,STORAGE_TEMPERATURE) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

PreparedStatement mstmt = con.prepareStatement(sql);

// dump out the results and set params

while (results.next()) {

mstmt.setString(1, results.getString("ORDER_NO"));

mstmt.setString(2, results.getString("ARTICLE_NO"));

mstmt.setString(3, results.getString("CATALOG_NO"));

mstmt.setString(4, results.getString("DESCRIPTION"));

mstmt.setString(5, results.getString("QUANTITY"));

mstmt.setString(6, results.getString("ISO_UNIT"));

mstmt.setString(7, results.getString("UNIT"));

mstmt.setString(8, results.getString("MDL_NO"));

mstmt.setString(9, results.getString("CAS"));

mstmt.setString(10, results.getString("MOLECULA_FORMULA"));

mstmt.setString(11, results.getString("MOLECULAR_WEIGHT"));

mstmt.setString(12, results.getString("DENSITY"));

mstmt.setString(13, results.getString("PRICE_EUR"));

mstmt.setString(14, results.getString("UN_NO"));

mstmt.setString(15, results.getString("DANGER_GROUP"));

mstmt.setString(16, results.getString("DANGER_CLASS"));

mstmt.setString(17, results.getString("ZUSATZGEFAHR1"));

mstmt.setString(18, results.getString("ZUSATZGEFAHR2"));

mstmt.setString(19, results.getString("R_PHRASES"));

mstmt.setString(20, results.getString("S_PHRASES"));

mstmt.setString(21, results.getString("DANGER_SYMBOL"));

mstmt.setString(22, results.getString("STORAGE_TEMPERATURE"));

mstmt.execute();

System.out.println(results.getString("ORDER_NO"));

}

// clean up

mstmt.close();

con.close();

results.close();

stmt.close();

conn.close();

} catch (Exception e) {

System.out.println("Oops-> " + e);

}

}

}

其实很简单,和操作数据库一样,提供了类似数据中的SQL语句来操作CSV文件中的数据。

posted on 2009-08-04 11:27 周锐 阅读(1683) 评论(0)  编辑  收藏 所属分类: Java 、MySQL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值