Java Export Database to CSV file |
Java Export Database to CSV file บทความนี้เป็นการเขียน Java เพื่อทำการ Export ข้อมูลจาก Database ออกเป็นข้อมูลที่อยู่ในรูปแบบของ CSV file โดยจะใช้หลักการก็คือ Query ข้อมูลจาก Database แล้วใช้การ Loop เพื่อเขียนข้อมูลแต่ล่ะ Rows ลงใน CSV ซึ่งตัว Database นี้จะใช้อะไรก็ได้ แต่ในบทความนี้จะเลือกใช้ MySQL เพราะสามารถใช้งานได้ง่ายที่สุด
Java and MySql Database บทความเกี่ยวกับการเขียน Java กับ MySQL
MySQL Table (โครงสร้างของ Table)
CREATE TABLE `customer` (
`CustomerID` varchar(4) NOT NULL,
`Name` varchar(50) NOT NULL,
`Email` varchar(50) NOT NULL,
`CountryCode` varchar(2) NOT NULL,
`Budget` double NOT NULL,
`Used` double NOT NULL,
PRIMARY KEY (`CustomerID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- dump ตาราง `customer`
--
INSERT INTO `customer` VALUES ('C001', 'Win Weerachai', '[email protected]', 'TH', 1000000, 600000);
INSERT INTO `customer` VALUES ('C002', 'John Smith', '[email protected]', 'UK', 2000000, 800000);
INSERT INTO `customer` VALUES ('C003', 'Jame Born', '[email protected]', 'US', 3000000, 600000);
INSERT INTO `customer` VALUES ('C004', 'Chalee Angel', '[email protected]', 'US', 4000000, 100000);
เป็นโครงสร้างของ Table และ Data ที่อยู่ใน MySQL Database
Example ตัวอย่างการเขียน Java เพื่อทำการ Exportข้อมูลจาก Database ไปยัง CSV file (.csv)
MyClass.java
package com.java.myapp;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
public class MyClass {
public static void main(String[] args) {
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String sql = "SELECT * FROM customer ORDER BY CustomerID ASC";
ResultSet rec = s.executeQuery(sql);
String path = "C:\\java\\thaicreate.csv";
FileWriter writer;
try {
File file = new File(path);
writer = new FileWriter(file, true); //True = Append to file, false = Overwrite
while((rec!=null) && (rec.next()))
{
writer.write(rec.getString("CustomerID"));
writer.write(",");
writer.write(rec.getString("Name"));
writer.write(",");
writer.write(rec.getString("Email"));
writer.write(",");
writer.write(rec.getString("CountryCode"));
writer.write(",");
writer.write(rec.getString("Budget"));
writer.write(",");
writer.write(rec.getString("Used"));
writer.write("\r\n");
}
writer.close();
System.out.println("Write success!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close
try {
if(connect != null){
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Output
Write success!
ไฟล์ถูกสร้าง
รายละเอียดของ CSV file ที่ได้จากการ Export จาก Database
thaicreate.csv
C001,Win Weerachai,[email protected],TH,1000000,600000
C002,John Smith,[email protected],UK,2000000,800000
C003,Jame Born,[email protected],US,3000000,600000
C004,Chalee Angel,[email protected],US,4000000,100000
|