蓄电池监控管理平台数据库初始化程序
whyclj
2019-01-02 7528e3b7d9a883b89b97f6c671ef229e93b370fb
执行完重新建表程序后,修改指定字段(逻辑中添加事务修改)
6个文件已修改
161 ■■■■ 已修改文件
BattMonitor_DB_Builder/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/sql/Sql_Mysql.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/main/main_BTS_DB_Builder.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/com/sql/Sql_Mysql.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/main/main_BTS_DB_Builder.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.class
Binary files differ
BattMonitor_DB_Builder/bin/com/sql/Sql_Mysql.class
Binary files differ
BattMonitor_DB_Builder/bin/main/main_BTS_DB_Builder.class
Binary files differ
BattMonitor_DB_Builder/src/com/battdata_rt/BattData_RT_RamDB_Thread_SQL.java
@@ -1,6 +1,7 @@
package com.battdata_rt;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
@@ -187,6 +188,13 @@
                        + "`db_conn_max` INT NOT NULL DEFAULT 0, "
                        + "`db_conn_count` INT NOT NULL DEFAULT 0, "
                        
                        + "`app_conn_max` INT NOT NULL DEFAULT 0, "            //主程序数据库连接池最大连接数
                        + "`app_busy_conn_cnt` INT NOT NULL DEFAULT 0, "    //主程序数据库连接池正在使用的连接数
                        + "`app_idle_conn_cnt` INT NOT NULL DEFAULT 0, "    //主程序数据库连接池空余连接数
                        + "`server_cpu_rate` FLOAT NOT NULL DEFAULT 0, "    //服务器cpu使用率
                        + "`server_network_rate` FLOAT NOT NULL DEFAULT 0, "//服务器网络使用率
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        
@@ -194,12 +202,58 @@
                        + "(server_version) VALUES (" + main_BTS_DB_Builder.m_VersionNum + ")";
        
        Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
        ResultSet res = null;
        try {
            if(true == recreate) {
                sql.sqlMysqlExecute(sql_str0);
                sql.sqlMysqlExecute(sql_str1);
            } else {
                sql.sqlMysqlExecute("DELETE FROM " + Sql_Mysql.ServerState_Table);
            }
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_ram_db'"
                    + " AND table_name='tb_server_state'"
                    + " AND column_name='app_conn_max'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " +  Sql_Mysql.ServerState_Table
                        + " ADD COLUMN `app_conn_max` INT NOT NULL DEFAULT 0");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_ram_db'"
                    + " AND table_name='tb_server_state'"
                    + " AND column_name='app_busy_conn_cnt'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " +  Sql_Mysql.ServerState_Table
                        + " ADD COLUMN `app_busy_conn_cnt` INT NOT NULL DEFAULT 0");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_ram_db'"
                    + " AND table_name='tb_server_state'"
                    + " AND column_name='app_idle_conn_cnt'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " +  Sql_Mysql.ServerState_Table
                        + " ADD COLUMN `app_idle_conn_cnt` INT NOT NULL DEFAULT 0");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_ram_db'"
                    + " AND table_name='tb_server_state'"
                    + " AND column_name='server_cpu_rate'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " +  Sql_Mysql.ServerState_Table
                        + " ADD COLUMN `server_cpu_rate` FLOAT NOT NULL DEFAULT 0");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_ram_db'"
                    + " AND table_name='tb_server_state'"
                    + " AND column_name='server_network_rate'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " +  Sql_Mysql.ServerState_Table
                        + " ADD COLUMN `server_network_rate` FLOAT NOT NULL DEFAULT 0");
            }
            
            sql.sqlMysqlExecute(sql_str2);
@@ -296,22 +350,40 @@
     * 让主程序重新导入单体数据关键字改成true
     * @param conn_pool
     */
    public static void updateTb_App_Sys_AppServerTable(MysqlConnPool conn_pool)
    public static boolean updateTb_App_Sys_AppServerTable(MysqlConnPool conn_pool)
    {
        Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
        Connection conn = conn_pool.getConn();
        Sql_Mysql sql = new Sql_Mysql(conn);
        boolean flag = false;
        try {
            conn.setAutoCommit(false);
            sql.sqlMysqlUseDB(Sql_Mysql.DB_AppSys);
            if(true == sql.sqlMysqlCheckIfTableExist(Sql_Mysql.TB_AppSys)) {
                //System.out.println("修改数据库中的是否重载数据");
                String sql_str_1 = "UPDATE " + Sql_Mysql.AppSys_Table + " SET "
                                    + " AppServer_Reinit_BattGroupData_EN = 1";
                sql.sqlMysqlExecute(sql_str_1);
                String sql_str0 = "SELECT AppServer_Reinit_BattGroupData_EN FROM db_app_sys.tb_app_sys ";
                ResultSet rs = sql.sqlMysqlQuery(sql_str0);
                if(rs.next()) {
                    if(rs.getBoolean("AppServer_Reinit_BattGroupData_EN") == false) {
                        //System.out.println("修改数据库中的是否重载数据");
                        String sql_str_1 = "UPDATE " + Sql_Mysql.AppSys_Table + " SET "
                                + " AppServer_Reinit_BattGroupData_EN = 1";
                        sql.sqlMysqlExecute(sql_str_1);
                        flag = true;
                    }
                }
            }
            conn.setAutoCommit(true);
        } catch (SQLException e) {
            flag = false;
            try {
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
        return flag;
    }
    /**
@@ -394,7 +466,7 @@
    }
    public static void main(String[] args) {
        MysqlConnPool conn_pool = new MysqlConnPool("118.89.139.230",3360,5);
        createBattData_RT_RamDB_Table(conn_pool,false);
        MysqlConnPool conn_pool = new MysqlConnPool("127.0.0.1",3360,5);
        System.out.println(updateTb_App_Sys_AppServerTable(conn_pool));
    }
}
BattMonitor_DB_Builder/src/com/sql/Sql_Mysql.java
@@ -33,7 +33,7 @@
    
    public final static String TB_BattTestDataInf = "tb_batttestdata_inf";
    public final static String TB_BattRtState = "tb_batt_rtstate";
    public final static String TB_BattRtData = "tb_server_state";
    public final static String TB_BattRtData = "tb_batt_rtdata";
    
    public final static String TB_UserInf = "tb_user_inf";
    public final static String TB_UserLog = "tb_user_log";
@@ -174,6 +174,7 @@
                        + "`SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00',"
                        + "`SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false, "
                        + "`AppServer_Reinit_BattGroupData_EN` BOOLEAN NOT NULL DEFAULT false, "
                        + "`AppServer_Reinit_Config_EN` BOOLEAN NOT NULL DEFAULT false, "
                        + "`AppServer_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppClient_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppName` VARCHAR(50) NOT NULL DEFAULT '0',"
@@ -477,26 +478,49 @@
            }
        }
        //---------------------------------------------------------------------------------------------//
        ResultSet res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
            ResultSet res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                    + " WHERE table_schema='db_app_sys'"
                                    + " AND table_name='tb_app_sys'"
                                    + " AND column_name='SqlDB_BackUpTime'");
            if(false == res0.next()) {
                sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                                + " ADD COLUMN `SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00'"
                                + " AFTER `SqlDB_Version`,"
                                + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                                + " AFTER `SqlDB_BackUpTime`");
            }
            res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                + " WHERE table_schema='db_app_sys'"
                                + " AND table_name='tb_app_sys'"
                                + " AND column_name='SqlDB_BackUpTime'");
        if(false == res0.next()) {
                                + " AND column_name='SqlDB_BackUpManual_EN'");
            if(false == res0.next()) {
                sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                                + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                                + " AFTER `SqlDB_BackUpTime`");
            }
            /**************************** db_app_sys 表中添加 AppServer_Reinit_BattGroupData_EN列(重新载入电池组信息) *******************************************/
            res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_app_sys'"
                    + " AND table_name='tb_app_sys'"
                    + " AND column_name='AppServer_Reinit_BattGroupData_EN'");
            if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table 
                            + " ADD COLUMN `SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00'"
                            + " AFTER `SqlDB_Version`,"
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
        res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                            + " WHERE table_schema='db_app_sys'"
                            + " AND table_name='tb_app_sys'"
                            + " AND column_name='SqlDB_BackUpManual_EN'");
        if(false == res0.next()) {
                            + " ADD COLUMN `AppServer_Reinit_BattGroupData_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpManual_EN`");
            }
            /**************************** db_app_sys 表中添加 AppServer_Reinit_BattGroupData_EN 列(用于主程序动态调整运行参数) *******************************************/
            res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_app_sys'"
                    + " AND table_name='tb_app_sys'"
                    + " AND column_name='AppServer_Reinit_Config_EN'");
            if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table 
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
                            + " ADD COLUMN `AppServer_Reinit_Config_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `AppServer_Reinit_BattGroupData_EN`");
            }
        //---------------------------------------------------------------------------------------------//
        
        sqlMysqlExecute(table_1);
BattMonitor_DB_Builder/src/main/main_BTS_DB_Builder.java
@@ -14,7 +14,7 @@
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static float m_VersionNum = (float) 1.001;
    public final static float m_VersionNum = (float) 1.002;
    public final static String m_Version = "Welcome To Use BTS DB BUILDER V" + m_VersionNum + " RC_20180908";
    /**************************************************************************/
    /**************************************************************************/
@@ -100,17 +100,26 @@
            m_AppConfig.writeConfigToXml();
        }
        
        System.out.println("BTS DB BUILDER Work Done @ " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        
        
        //修改tb_app_sys表中的关键字,让主程序识别
        BattData_RT_RamDB_Thread_SQL.updateTb_App_Sys_AppServerTable(GB_MysqlConnPool);
        for(int i=0;i<5;i++) {
            if(BattData_RT_RamDB_Thread_SQL.updateTb_App_Sys_AppServerTable(GB_MysqlConnPool)) {
                break;
            }
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        
        System.out.println("BTS DB BUILDER Work Done @ " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        /*
        while(true) {
            try {