在开发和管理MySQL数据库的时候,workbench可以直接从CSV文件中导入数据到MySQL数据库,也可以直接从MySQL数据库中导出数据到CSV文件。但workbench毕竟是手动的,有时候需要解放双手,所以写了一个Java程序,让程序自动从MySQL数据库中查询我们需要的数据,并存到指定目录的CSV文件。
现在假设要查询MySQL用户为"Dennis",密码为"123456",数据库为"myDatabase"中的"user"表中所有记录,并将查询存到D盘根目录下的"user.csv"文件中。
SQL语句
SELECT
into outfile 'D:/user.csv'
fields terminated by ','
lines terminated by '\r\n';
into outfile ‘D:/user.csv’ :为指定输出文件路径
fields terminated by ‘,’ :指定字段之间分割
lines terminated by ‘\r\n’ :指定行之间的分割
Java连接MySQL
使用JDBC连接MySQL的时候需要导入一个依赖:mysql-connector-java-5.1.39-bin.jar
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class queryMysqlToCSV{
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/dennis?characterEncoding=utf8&useSSL=false";
static final String USER = "Dennis";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String SQL = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
ps = conn.prepareStatement(SQL);
rs = ps.executeQuery();
}catch(SQLException se) {
se.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(conn!=null)
conn.close();
}catch(SQLException se) {
se.printStackTrace();
在Java中执行SQL语句
package mysql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class mysqlConnect {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/dennis?characterEncoding=utf8&useSSL=false";
static final String USER = "Dennis";
static final String PASS = "123456";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String SQL = null;
try {
Class.forName(JDBC_DRIVER);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
SQL = "SELECT \r\n" +
" *\r\n" +
"FROM \r\n" +
" user\r\n" +
"into outfile 'D:/user.csv' " +
"fields terminated by ',' " +
"lines terminated by '\\r\\n'";
ps = conn.prepareStatement(SQL);
rs = ps.executeQuery();
}catch(SQLException se) {
se.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null)
rs.close();
if(ps!=null)
ps.close();
if(conn!=null)
conn.close();
}catch(SQLException se) {
se.printStackTrace();
执行代码会在我们指定的D盘根目录下生成一个user.csv文件。
使用mysql查询结果输出在标准输出流中,可以直接重定向到一个文件中。列的分隔是tab符,列分隔是LF符。如果想转化为cvs格式,可以通过下列Java程序进行转码。
public class TsvToCsvMain {
public static void main(String[] args) throws Exception {
// String input = "F:\\ttda...
注册CSDN快六个月了,之前一直是看园子里的文章,或者碰到问题时,进来查点资料,今天终于决定写一篇自己在园子里的blog。好吧,鉴于水平太菜,就只记录过程,其中原理啥的并不是很明晰,所以此blog只在记录,莫BS哈。神马是CSV文件呢,看起来和excel文件很像,具体有神马不同,见这位圆友的blog哈,http://blog.csdn.net/luweifeng1983/article/detai...
一、导入步骤
1.打开MySQL操作软件
我用的是MySQL workbench,建立一个数据库用来存放数据,新建空表格(表格的列数要和导入数据的相同),用来导入数据,我这里需要导入3个表格,所以就建了3各表:
create database if not exists a
mysql -A service_db -h your_host -utest -ptest
mysql> select * from t_apps where created>'2012-07-02 00:00:00' in...
import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.nio.charset.Charset;
import java.util.Collection...
可以借助SELECT…INTO OUTFILE语句来完成。我们将在以下示例的帮助下进行说明-示例假设我们从表'Student_info'获得以下数据-mysql>Select*fromStudent_info;+------+---------+------------+------------+|id|Name|Address|Subject|...
package com.go;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statem...
使用java把10G文本导入mysql(并转码为csv)
第一次遇到10G的文本需要导入,所以一开始想直接按行导入,结果读取了txt发现有1亿8千万行,算下来要导入半个月了,属于千万级数据,不建议逐行操作。最后发现mysql有LOAD DATA LOCAL INFILE语句可以非常快速的导入txt文档,10G的文档经过测试只用2个小时。本次导入分为三步:
(1)把10G文件切割成100个100M的...
2006年7月7日最近的工作常常要和XML格式的文档或字符串打交道,发现用JDOM来做真是方便。可以实现XML应用程序的快速开发。在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。因为 JDOM 对象就是像 Document、Element 和 Attribute 这些类的直接实例,因此创...