应用程序初次运行数据库配置小程序(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

相关文章
相关标签/搜索