數據庫:oracle:
jar包:ojdbc14.jar
json-lib-2.4-jdk1.5.jar
json-parser_fat.jar
package exprot;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class export {
//數據庫連接
public static Connection getConnection() throws SQLException,ClassNotFoundException
{
Connection con = null;
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 加載Oracle驅動程序
System.out.println("開始嘗試連接數據庫!");
String url = "jdbc:oracle:" + "thin:@192.168.1.95:1521:QTWZ";// 127.0.0.1是本機地址,XE是精簡版Oracle的默認數據庫名
String user = "MIS_SYS";// 用戶名,系統默認的賬戶名
String password = "MIS_SYS";// 你安裝時選設置的密碼
con = DriverManager.getConnection(url, user, password);// 獲取連接
System.out.println("連接成功!");
return con;
}catch (Exception e)
{
e.printStackTrace();
}
return null;
}
//導出項目物資
public void saveprojectwz(){
JSONArray jsonArray = new JSONArray();
Connection con = null;
ResultSet result = null;// 創建一個結果集對象
PreparedStatement pre = null;// 創建預編譯語句對象,一般都是用這個而不用Statement
String sql = "select * from MIS_QTWZ.PROJECTWZ";// 預編譯語句,“?”代表參數
try {
pre = getConnection().prepareStatement(sql);// 實例化預編譯語句
result = pre.executeQuery();// 執行查詢,注意括號中不需要再加參數
System.out.println(result);
while (result.next()){
JSONObject json = new JSONObject();
json.put("rid", result.getString("RID"));
if(result.getString("PROJECT") == null){
json.put("project", "0");
}else{
json.put("project", result.getString("PROJECT"));
}
json.put("name", result.getString("NAME"));
json.put("type", result.getString("TYPE"));
if(result.getString("NUM") == null){
json.put("num", "0");
}else{
json.put("num", result.getString("NUM"));
}
if(result.getString("NUMLY") == null){
json.put("numly", "0");
}else{
json.put("numly", result.getString("NUMLY"));
}
if(result.getString("NUMYY") == null){
json.put("numyy", "0");
}else{
json.put("numyy", result.getString("NUMYY"));
}
json.put("unit", result.getString("UNIT"));
if(result.getString("NUMTL") == null){
json.put("numtl", "0");
}else{
json.put("numtl", result.getString("NUMTL"));
}
jsonArray.add(json);
}
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally
{
try
{
// 逐一將上面的幾個對象關閉,因爲不關閉的話會影響性能、並且佔用資源
// 注意關閉的順序,最後使用的最先關閉
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("數據庫連接已關閉!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
savefile( "f://QTWZ_WEB//projectwz.json", jsonArray);
}
//導出項目表
public void saveproject(){
JSONArray jsonArray = new JSONArray();
Connection con = null;
ResultSet result = null;// 創建一個結果集對象
PreparedStatement pre = null;// 創建預編譯語句對象,一般都是用這個而不用Statement
String sql = "select * from MIS_QTWZ.PROJECT";// 預編譯語句,“?”代表參數
try {
pre = getConnection().prepareStatement(sql);// 實例化預編譯語句
result = pre.executeQuery();// 執行查詢,注意括號中不需要再加參數
System.out.println(result);
while (result.next()){
JSONObject json = new JSONObject();
json.put("rid", result.getString("RID"));
json.put("name", result.getString("NAME"));
json.put("code", result.getString("CODE"));
if(result.getString("BEGINTIME") == null){
json.put("begintime", "0");
}else{
json.put("begintime", result.getString("BEGINTIME").substring(0,10));
}
if(result.getString("ENDTIME") == null){
json.put("endtime", "0");
}else{
json.put("endtime", result.getString("ENDTIME").substring(0,10));
}
json.put("fzoprt",result.getString("FZOPRT"));
json.put("phone", result.getString("PHONE"));
json.put("remark", result.getString("REMARK"));
if(result.getString("FLAG") == null){
json.put("flag", "0");
}else{
json.put("flag", result.getString("FLAG"));
}
jsonArray.add(json);
}
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally
{
try
{
// 逐一將上面的幾個對象關閉,因爲不關閉的話會影響性能、並且佔用資源
// 注意關閉的順序,最後使用的最先關閉
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("數據庫連接已關閉!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
System.out.println(jsonArray);
savefile( "f://QTWZ_WEB//project.json", jsonArray);
}
//獲取主目錄
public String mkdir() throws IOException{
String path = "f://QTWZ_WEB";
File file =new File(path);
//if file doesnt exists, then create it
if(file.exists()){
String[] content = file.list();//取得當前目錄下所有文件和文件夾
for(String name : content){
File temp = new File("f://QTWZ_WEB", name);
if(temp.exists()){
temp.delete();
System.out.println("刪除成功"+ name);
}
}
System.out.println("目錄以清空");
}else{
file.mkdir();
System.out.println("創建目錄成功");
}
return path;
}
//導出json文件
public static void savefile(String path,JSONArray jsonArray){
try{
File file =new File(path);
//if file doesnt exists, then create it
if(!file.exists()){
file.createNewFile();
}
//true = append file
FileWriter fileWritter = new FileWriter(file);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(jsonArray.toString());
bufferWritter.close();
System.out.println("Done");
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
new export().mkdir();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
export exp = new export();
exp.saveproject();
exp.saveprojectwz();
}
}