應用程序初次運行數據庫配置小程序(Java版)

 應用程序初始化數據庫配置小程序java

  以前寫過一個Java版的信息管理系統,但部署系統的時候還須要手動的去配置數據庫和導入一些初始化的數據才能讓系統運行起來,因此我在想是否是能夠寫一個小程序在系統初次運行的時候自動部署數據庫和導入一些初始化數據。而後就有了如下的思路:mysql

  在應用程序入口處判斷數據庫是否已經配置完成,若配置完成則進入正常的登陸系統完成正常操做便可,若未配置則進入數據庫配置的小程序完成數據庫配置而後再進入系統,但如何來判斷是否已經配置完成呢,在這裏我用的是比較原始的方法,配置數據庫的時候系統會在相關目錄下自動生成一個關於數據庫相關的配置文件(config.xml),該配置文件說明了數據庫的種類,數據庫的用戶名,數據庫的密碼(涉及到的安全性問題以後再處理),以及應用程序所用到數據庫也就是即將自動建立的數據庫名,因此在應用程序啓動的時候系統會去檢測相關路徑下是否有該配置文件,若該文件存在則數據庫配置完成,不然該系統是初次運行,須要啓動數據庫配置小程序。進入數據庫配置小程序後,會彈出一個彈出式對話框,咱們須要選擇使用到的數據庫以及輸入數據庫用戶名,密碼以及系統用到的數據庫的名,點擊測試按鈕查看是否能夠鏈接上數據庫,若能完成鏈接則會多出一個初始化按鈕,點擊初始化按鈕會執行相應的建立數據庫數據表以及導入數據等操做,而這些操做則能夠經過讀取初始化文件(文件中是初始化執行的sql語句),初始化完成即完成了整個數據庫的初始化任務,而後會調用正常的登陸程序登陸進入系統。git

  因此整個流程總結下來就是,運行應用程序——>判斷相關目錄下是否有數據庫的配置文件(config.xml)(有則進入正常的登陸程序)——>若沒有則運行數據庫初始化小程序——>選擇數據庫類型,輸入用戶名密碼以及新建的數據庫的名——>點擊測試按鈕(測試不經過檢查數據庫重試)——>測試成功則點擊初始化按鈕完成初始化——>初始化任務完成後會跳轉到正常的登陸程序。github

  程序入口判斷程序sql

package hxy;
import java.io.File;
class CreateDBConfig {
    public CreateDBConfig(){
        try {
            File file = new File("config");
            File filePath = new File("config//config.xml");
            if(!file.exists()){
                if(file.mkdir()){
                    if(!filePath.exists()){
                        new DBForm();
                    }else{
                        System.out.print("配置文件建立失敗!!!");
                    }                            
                }
                else{
                    System.out.println("目錄建立失敗!!!");
                }
            }
            else{
                if(!filePath.exists()){
                    new DBForm();
                }else{
                    System.out.println("數據庫已經配置成功直接進入應用!!!");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }    
    }
}

  數據庫選擇界面以及控件監視器程序(完成配置數據的收集而後交給配置文件生成程序生成相應的配置文件)數據庫

在這裏界面主要是一個下拉列表框提供數據庫的類型的選擇,目前我只提供了mysql和sqlserver兩種數據庫的選擇,有興趣的能夠本身添加其餘的數據庫的相關選項,這裏還有一點我沒考慮那就是數據庫的位置,由於我這裏寫的主要是爲了鏈接本地數據庫因此個人數據庫鏈接字符串中的地址都是localhost(127.0.0.1),若是這裏須要鏈接網絡數據庫的話,咱們能夠在對話框中添加鏈接字符串的輸入框,如此就能夠鏈接上網絡數據庫了,因此界面上只有用戶名和密碼以及數據庫名的說明,固然若是須要更詳細的配置的話咱們也能夠在配置文件中添加更詳細的子標籤和在對話框中設置更詳細的選項。小程序

public Database getDatabase(){
        Database db = new Database();
        String dbType = databaseType.getSelectedItem().toString().trim();
        System.out.println(dbType);
        String dbUser = userName.getText().trim();
        @SuppressWarnings("deprecation")
        String dbPassword = password.getText().trim();
        String dbName = databaseName.getText().trim();
        if(dbType==null|dbUser==null|dbPassword==null|dbName==null){
            new JOptionPane().showMessageDialog(okButton, "請完善數據庫信息!!!");;
        }
        else{
            if(dbType.equals("MySql")){
                db.setType(dbType);
                db.setDriver("com.mysql.jdbc.Driver");
                db.setUri("localhost");
                db.setPort("3306");
                db.setUser(dbUser);
                db.setPassword(dbPassword);
                db.setName(dbName);
            }
            else{                
                db.setType(dbType);
                db.setDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                db.setUri("localhost");
                db.setPort("1433");
                db.setUser(dbUser);
                db.setPassword(dbPassword);
                db.setName(dbName);
            }
        }            
        return db;
    }

  在彈出式對話框中咱們填寫了詳細的數據庫的配置信息,這些信息綜合成了一個實體類Database,如此將這些配置設置成私有成員變量,這樣在以後的調用中也只須要調用xml文件解析器來獲取相應的配置而後把配置信息注入到一個Database的實體中,如此這個實體就擁有了全部的配置信息,鏈接程序只須要調用這個實體就能夠獲取到和數據庫相連的須要的信息來完成鏈接和後期的數據庫交互。  安全

配置文件生成程序即把數據庫的相關信息寫入配置文件供系統以後鏈接數據庫時讀取,因此這裏生成配置文件還有一個比較好的好處就是個人程序不須要寫死就是在程序中就須要徹底的把數據庫的相關信息寫進入,這裏我只須要讀取配置文件而後注入到相關的方法中就行。至於配置文件生成器就是先建立一個文件,而後根據相應的配置數據寫入到文件中,固然這是一個xml文件,也可使用dom4j等來科學的寫入和修改,但這樣比較簡單粗暴,至於xml文件的解析器和生成器程序在之後的博文中相應的介紹到。網絡

  這個小程序徹底是由於本身的小想法和小猜測去實踐寫的並應用到了個人以前的那個信息管理系統中,以上是小程序全部代碼中一部分,程序完整代碼在個人GitHub中(https://github.com/huangxinyuan650/ConnectDatabase)歡迎你們批評指正dom

相關文章
相關標籤/搜索