package com.kylin.test.ImportCSV;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class MetaDataInfoProvider {
public int getMetaDataName(String m_TableName, Connection m_Connection) {
int colCount = 0;
try {
if (m_Connection == null) {
Class.forName("com.mysql.jdbc.Driver").newInstance();
m_Connection = DriverManager
.getConnection("jdbc:mysql://localhost:3306/db_extjs?;characterEncoding=gbk&useUnicode=true","admin","admin");
}
DatabaseMetaData m_DBMetaData = m_Connection.getMetaData();
ResultSet tableRet = m_DBMetaData.getTables(null, "%", m_TableName,
new String[] { "TABLE" });
while (tableRet.next())
System.out.println("Table name is:"
+ tableRet.getString("TABLE_NAME"));
String columnName;
String columnType;
ResultSet colRet = m_DBMetaData.getColumns(null, "%", m_TableName,
"%");
while (colRet.next()) {
columnName = colRet.getString("COLUMN_NAME");
columnType = colRet.getString("TYPE_NAME");
int datasize = colRet.getInt("COLUMN_SIZE");
int digits = colRet.getInt("DECIMAL_DIGITS");
int nullable = colRet.getInt("NULLABLE");
String nullFlag;
if (nullable == 1) {
nullFlag = "Null";
} else {
nullFlag = "Not Null";
}
System.out.println(columnName + " " + columnType + "("
+ datasize + "," + digits + ") " + nullFlag);
colCount++;
}
} catch (SQLException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("The number of column is: " + colCount);
return colCount;
}
public static void main(String args[]) {
MetaDataInfoProvider mdip = new MetaDataInfoProvider();
mdip.getMetaDataName("dim_customer", null);
}
}
package com.kylin.test.ImportCSV;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class InsertDB extends Thread {
private static final String user = "admin";
private static final String pwd = "admin";
private static final String url = "jdbc:mysql://localhost:3306/db_extjs?;characterEncoding=gbk&useUnicode=true";
private static final String driver = "com.mysql.jdbc.Driver";
private static String DELIMITERS = ",";
public static String getDELIMITERS() {
return DELIMITERS;
}
public static void setDELIMITERS(String delimiters) {
DELIMITERS = delimiters;
}
public static Connection getCon() {
Connection con = null;
try {
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url, user, pwd);
if (con != null) {
System.out.println("你已连接到数据库:" + con.getCatalog());
}
} catch (Exception e) {
System.out.println("连接数据库失败!");
e.printStackTrace();
}
return con;
}
public boolean insertDB(String tablename, long rc) {
if (rc < 1) {
rc = 100;
}
Connection con = null;
Statement stm = null;
boolean flag = false;
Statement pre;
String sql = "";
MetaDataInfoProvider mdip = new MetaDataInfoProvider();
try {
con = getCon();
stm = con.createStatement();
pre=con.createStatement();
int colCount = mdip.getMetaDataName(tablename, con);
int rowCount = 0;
File raf = new File("c:/Tempaltes.csv");
BufferedReader buf = null;
buf = new BufferedReader(new InputStreamReader(new FileInputStream(
raf)));
// FileWriter fw = new FileWriter("f:/dim_customer_new.sql", true); //以文件方式输出
// BufferedWriter bw = new BufferedWriter(fw);
String line_record = buf.readLine();
long sqlstart = System.currentTimeMillis(); //开始计时
while (line_record != null) {
// 解析每一条记录
sql = "insert into " + tablename + " values('";
String[] fields = line_record.split(DELIMITERS);
//对Insert语句的合法性进行判断
if(fields.length!=colCount){
System.out.println("要插入的数据列数和表的数据列不相匹配,停止执行"); break; }
for (int i = 0; i < fields.length; i++) {
sql += fields[i];
if (i < fields.length - 1) {
sql += "','";
}
}
sql += "');";
// 在控制台输出SQL语句
// System.out.println(sql);
//执行SQL语句
// stm.executeUpdate(sql); //直接执行效率比较低
pre.addBatch(sql);
rowCount++;
line_record = buf.readLine();
if (rowCount >= rc)
break;
}
pre.executeBatch();
pre.close();
// bw.flush(); // 将数据更新至文件
// bw.close();
// fw.close();
// bw.close();
// fw.close();
System.out.println("共写入行数:" + rowCount);
long sqlend = System.currentTimeMillis(); //停止计时
System.out.println("执行时间为:" + (sqlend - sqlstart) + " ms");
} catch (Exception e) {
flag = false;
e.printStackTrace();
} finally {
close(null, stm, con);
}
return flag;
}
// 关闭相关连接
public void close(ResultSet rs, Statement stm, Connection con) {
if (rs != null)
try {
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
if (stm != null)
try {
stm.close();
} catch (Exception e) {
e.printStackTrace();
}
if (con != null)
try {
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void run() {
this.insertDB("person", 500000);
}
public static void main(String[] args) {
InsertDB insertDB1 = new InsertDB();
insertDB1.start();
// InsertDB insertDB2 = new InsertDB();
// insertDB2.start();
}
}
分享到:
相关推荐
标题中的“Excel导入CSV文件”指的是在Microsoft Excel中将逗号分隔值(Comma Separated Values, CSV)格式的数据导入到工作表中。CSV文件是一种常见的数据交换格式,因其简单和通用性而广泛使用。它以纯文本形式...
2-Gbase导入csv文件教程(csv不要用Excel打开)
PLSQL 导入 CSV 文件 PLSQL 是 Oracle Corporation 开发的程序语言,主要用于开发 Oracle 数据库应用程序。CSV(Comma Separated Values)是通用的文件格式,用于存储表格数据。PLSQL 导入 CSV 文件是指使用 PLSQL ...
### ASP.NET导入CSV文件到数据库:深入解析与实践 在当今数据驱动的环境中,处理大量数据集成为软件开发中的常见需求。CSV(Comma Separated Values)文件因其简单且易于生成和读取的特点,在数据交换和存储方面被...
总结,实现Web页面导入CSV文件涉及前端HTML文件上传表单、后端的文件上传处理(使用Apache Commons库)、CSV文件的读取与解析,以及后续的数据处理。在实际应用中,还需考虑错误处理、性能优化和安全性措施。
CSV文件以逗号分隔各个字段,每一行代表一个记录,非常适合用来存储表格数据。当需要处理这些数据时,Java提供了一些库和方法来读取、解析和操作CSV文件,进而将这些数据写入数据库。 首先,我们来讨论如何在Java中...
下面是一个基本的示例代码片段,演示了如何导入CSV文件并设置列标题: ```cpp #include #import "libid:0002443F-0000-0000-C000-000000000046" named_guids auto_rename using namespace Excel; int main() { ...
### Jupyter导入CSV文件方式详解 #### 一、前言 在数据分析领域,Jupyter Notebook 是一种非常流行的工具,它不仅能够提供一个交互式的环境来编写代码,还能够直观地展示图表和其他数据可视化结果。而在实际操作...
### 使用Python Pandas库批量导入CSV文件至DataFrame的技巧 #### 一、环境设置与库的导入 在开始批量处理CSV文件之前,首先确保已经安装了Pandas库。如果未安装,可以在终端或命令行中运行如下命令进行安装: ```...
4. **设置编码**:导入CSV文件后,会有一个导入向导出现。在这个阶段,确保在“文件原格式”下拉菜单中选择“UTF-8”。这是确保正确显示中文字符的关键步骤,因为PLSQL导出的CSV文件通常使用UTF-8编码。 5. **加载...
在VC6.0环境下,将ExcelText改为导入CSV文件到表格的成功实现主要涉及到以下几个关键知识点: 1. **CSV文件格式**: CSV(Comma Separated Values)是一种常见的数据存储格式,以逗号分隔各个字段,易于读取和处理...
首先先让我们看一下CSV文件,该文件保存在我的D:盘下,名为csv.txt,内容是: 现在就是SQL Server的关键部分了; 我们使用的是SQL Server的BULK INSERT命令,关于该命令的详细解释,请点击此处; 我们先在SQL ...
其中,‘filename.csv’ 是要导入的 csv 文件的名称。 三、怎么进行频谱分析 频谱分析是信号处理和分析的重要步骤,MATLAB 提供了多种方法来进行频谱分析。其中一种常见的方法是使用 fft 函数来计算快速傅里叶变换...
2. **准备CSV文件**:确保CSV文件结构与Oracle表结构匹配,即字段数量、顺序和数据类型相一致。如果不同,可能需要对CSV文件进行预处理,如使用Excel或其他工具调整格式。 3. **创建或选择目标表**:在Oracle数据库...
在导入CSV文件之前,确保文件内容与表结构一致,且字段顺序对应。如果CSV文件包含非ASCII字符(如中文),则需要确认文件编码为UTF-8,以避免导入时出现乱码问题。如果原始文件不是UTF-8编码,可以使用文本编辑器...
在IT行业中,数据的导入与导出是常见的操作...总的来说,通过Java将数据库导入CSV程序,我们可以实现数据的高效迁移和共享,同时利用CSV的灵活性和通用性。对于Java开发者来说,掌握这样的技能对日常开发工作大有裨益。
csv的文件的导入导出可能会用的到,需要的可以下一下把
在数据建模过程中,有时我们需要导入大量数据,此时Excel CSV文件就显得非常实用,因为它们可以方便地存储和处理大量结构化数据。"PowerDesigner导入Excel CSV脚本以及示例.rar"这个压缩包显然包含了如何在...
**Navicat for MySQL 可视化导入CSV文件详解** Navicat for MySQL 是一款强大的MySQL数据库管理和开发工具,它提供了直观的用户界面,使得数据库管理变得更加简单。在实际工作中,我们经常需要将CSV(逗号分隔值)...
综上所述,Java导入Excel文件涉及的关键技术包括Apache POI库的使用,对HSSF和XSSF的理解,以及对CSV文件处理的技巧。通过熟练掌握这些知识,你可以编写出高效且健壮的文件导入程序,满足各种需求。