Fork me on GitHub

前台页面配置sql连接

###
在前台页面配置sql的数据库连接,然后将其数据导入到数据库中,页面上的配置如下图所示

前端页面代码如下:

</style>
<script type="text/javascript"
    src="${ctx}/assets/lib/jquery/1.9.1/jquery.js"></script>
<script type="text/javascript">
    function dochange(dbType) {
        $.get("${ctx}/console/install/getDbInfo", {
            "DbType" : dbType
        }, function(data) {
            for (var key in data) {
                $("#" + key).val(data[key]);
            }
        })
    }
    $(function() {
        dochange();
        $("#impl").click(function() {
            var formData = $("#form1").serialize();
            console.log(formData);
            $.post("${ctx}/console/install/impl", formData, function(data) {
                alert(data);
            })
        })
    })
</script>
</head>
<body style="background-color: #D2D6DE; padding: 50px">
    <h1 align="center">
        <b>fsm5安装向导</b>
    </h1>
    <div
        style="width: 750px; height: 400px; margin: 0 auto; background-color: #ffffff;">
        <div class="box">
            <div class="box-header">
                <h3 class="box-title">fsm5安装:填写数据库连接信息。</h3>
            </div>
            <hr>
            <div class="box-body">
                <div class=>
                    <h3 class="box-title">请在下方填写您的数据库连接信息。如果您不确定,请联系您的服务提供商。</h3>
                </div>
                <form name="form1" id="form1">
                    <table style="width:100%">

                        <tr>
                            <td>选择数据库:</td>
                            <td><select size="1" name="DbType" id="DbType"
                                onChange="dochange(this.value)">
                                    <option value="mysql">mysql</option>
                                    <option value="oracle">oracle</option>
                                    <option value="sqlserver">sqlserver</option>
                                    <option value="dm">dm</option>
                            </select></td>
                            <td>选择你想用的数据库</td>
                        </tr>
                        <tr>
                            <td>数据库驱动:</td>
                            <td><input type="text" id="Driver" name="Driver" value=""></td>
                            <td>您的数据库驱动是?</td>
                        </tr>
                        <tr>
                            <td>数据库连接:</td>
                            <td><input type="text" id="Url" name="Url" value=""></td>
                            <td>您的数据库连接是?</td>
                        </tr>
                        <tr>
                            <td>用户名:</td>
                            <td><input type="text" id="User" name="User" value=""></td>
                            <td>您的数据库用户名?</td>
                        </tr>
                        <tr>
                            <td>密码:</td>
                            <td><input type="password" id="Password" name="Password"
                                value=""></td>
                            <td>您的数据库密码是?</td>
                        </tr>

                    </table>
                </form>
                <br>
                <br>
            </div>
            <hr>
            <!-- /.box-body -->
            <div id="footer" style="padding-right: 5px">
                <a class="you1"><input type="submit" name="submit" id="impl"
                    class="you" value="初始化数据"
                    style="width:80px; height:30px; background-color: #337ab7;color: #ffffff;"></a>
            </div>
        </div>
</body>

后台代码如下:

package com.code.controller;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.configuration.PropertiesConfiguration;

import com.code.core.MyConfig;
import com.code.util.SqlImp;
import com.jfinal.core.Controller;
import com.jfinal.kit.StrKit;

public class InstallController extends Controller {

    public void index() {
        if(MyConfig.installed){
            renderText("已经初始化完成");
            return;
        }
        render("install.html");
    }

    public void getDbInfo() {
        Map<String, String> dbInfo = new HashMap<String, String>();
        try {
            PropertiesConfiguration myconfig = new PropertiesConfiguration("myconfig.properties");
            String strDbType = getPara("DbType");
            if (StrKit.isBlank(strDbType)) {
                strDbType = myconfig.getString("db");
            }
            dbInfo.put("DbType", strDbType);
            dbInfo.put("Driver", myconfig.getString(strDbType + "Driver"));
            dbInfo.put("Url", myconfig.getString(strDbType + "Url"));
            dbInfo.put("User", myconfig.getString(strDbType + "User"));
            dbInfo.put("Password", myconfig.getString(strDbType + "Password"));
        } catch (Exception e) {
            e.printStackTrace();
        }
        renderJson(dbInfo);
    }

    public void impl() {
        String msg = "数据库脚本初始化成功,请重启中间件进入系统";
        try {
            PropertiesConfiguration myconfig = new PropertiesConfiguration("myconfig.properties");

            String strDbType = getPara("DbType");
            String strDriver = getPara("Driver");
            String strUrl = getPara("Url");
            String strUser = getPara("User");
            String strPassword = getPara("Password");

            String str = SqlImp.exec(strDbType,strDriver,strUrl,strUser,strPassword);
            if (StrKit.notBlank(str)) {
                msg = str;
            }
            myconfig.setProperty("db", strDbType);
            myconfig.setProperty(strDbType + "Driver", strDriver);
            myconfig.setProperty(strDbType + "Url", strUrl);
            myconfig.setProperty(strDbType + "User", strUser);
            myconfig.setProperty(strDbType + "Password", strPassword);
            myconfig.save();

        } catch (Exception e) {
            msg = "操作失败";
            e.printStackTrace();
        }

        renderText(msg);
    }

}

对应的数据库连接如下:

db=sqlserver

dmDriver = dm.jdbc.driver.DmDriver
dmUrl = jdbc:dm://localhost:5236/fsm4j
dmUser = fsm4j
dmPassword =123456789

sqlserverDriver =net.sourceforge.jtds.jdbc.Driver
sqlserverUrl =jdbc:jtds:sqlserver://localhost:1433;DatabaseName=fsm5
sqlserverUser =sa
sqlserverPassword =123456

oracleDriver = oracle.jdbc.driver.OracleDriver
oracleUrl = jdbc:oracle:thin:@localhost:1521:xe
oracleUser = fsm4j
oraclePassword = fsm4j

mysqlDriver = com.mysql.jdbc.Driver
mysqlUrl = jdbc:mysql://192.168.5.231/fsm4j?zeroDateTimeBehavior=convertToNull
mysqlUser = root
mysqlPassword =password

devMode = true