使用JDBC連接 將多個JSON數據導出到一個文件夾

數據庫: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();

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章