whyclj
2020-08-29 166f2f34ffed7ee9562eff02482ac6a3f7168bcd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.dev.btse.comm;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
 
import com.battmonitor.sql.MysqlConnPool;
import com.battmonitor.sql.Sql_Mysql;
import com.dev.btse.data.FBS9100_StatAndParam;
 
public class FBS9100S_DFU_SQL {
    /***************************************************************************/
    public static final int DFU_STATE_NULL = 0;
    public static final int DFU_STATE_WRITE = 1;
    public static final int DFU_STATE_READ = 2;
    public static final int DFU_STATE_CHECK_OK = 3;
    /***************************************************************************/
    /**
     * ´´½¨ tb_fbs9100s_dfu ±í²¢ÇÒ½«É豸idºÍÉ豸ip²åÈëµ½±íÖÐ
     * @param con_pool
     * @param al_param
     */
    public static void createFBS9100S_DFU_TableOnRam(MysqlConnPool con_pool, ArrayList<FBS9100_StatAndParam> al_param)
    {
        String str1 = "DROP TABLE IF EXISTS " + Sql_Mysql.FBS9100S_DFUState_Table;
        String str2 = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.FBS9100S_DFUState_Table
                    + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                    + "`dev_id` BIGINT NOT NULL DEFAULT 0, "
                    + "`sysVersion_new` INT NOT NULL DEFAULT 0, "
                    + "`softVersion_new` INT NOT NULL DEFAULT 0, "
                    + "`sysVersion_dev` INT NOT NULL DEFAULT 0, "
                    + "`softVersion_dev` INT NOT NULL DEFAULT 0, "
                    + "`dfu_file` varchar(200) NOT NULL DEFAULT '  ', "
                    + "`dfu_en` BOOLEAN NOT NULL DEFAULT false, "
                    + "`dfu_wr_stat` INT NOT NULL DEFAULT 0, "
                    + "`dfu_data_blocknum` INT NOT NULL DEFAULT 0, "
                    + "`dfu_data_blocklen` INT NOT NULL DEFAULT 256, "
                    + "`dfu_file_len` INT NOT NULL DEFAULT 0, "
                    + "`dfu_password` varchar(100) NOT NULL DEFAULT '  ', "
                    + " UNIQUE INDEX index_dev_id_uniq (`dev_id`), "
                    + " PRIMARY KEY (`num`) ) "
                    + " ENGINE=MEMORY DEFAULT CHARSET=utf8";
        
        String str3 = "";
        if(al_param.size() > 0) {
            str3 = "INSERT INTO " + Sql_Mysql.FBS9100S_DFUState_Table
                    + " (dev_id) VALUES";
        }
        for(int n=0; n<al_param.size(); n++)
        {
            if(n > 0) {
                str3 += ", ";
            }
            str3 += " (" + al_param.get(n).dev_id + ")";
        }
        
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        try {
            sql.sqlMysqlExecute(str1);
            sql.sqlMysqlExecute(str2);
            if(str3.length() > 0) {
                sql.sqlMysqlExecute(str3);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    /**
     * ¸ù¾ÝÉ豸id¸üР tb_fbs9100S_dfu ±í
     * @param con_pool
     * @param v_data
     * @param dev_id
     */
    public static void updateFbs9100S_DFU_StatByDev_Id(MysqlConnPool con_pool, int dev_id, FBS9100S_DFU dfu_t)
    {
        String sql_str_base = Sql_Mysql.FBS9100S_DFUState_Table 
                        + " SET "
                        + "dev_id=" + dev_id + ", "
                        + "dfu_file='" + dfu_t.DFU_FileName + "', "
                        + "dfu_en=" + dfu_t.DFU_EN + ", "
                        + "dfu_wr_stat=" + dfu_t.DFU_WR_State + ", "
                        + "dfu_data_blocknum=" + dfu_t.DFU_DataBlockNum_Start + ", "
                        + "dfu_file_len=" + dfu_t.DFU_FileByteLen;
        
        //String sql_str_update = "UPDATE " + sql_str_tb + sql_str_base + " WHERE dev_id=" + dev_id;
        String sql_str_replace = "REPLACE INTO " + sql_str_base;
        
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        try {
            //System.out.println(sql_str_replace);
            sql.sqlMysqlExecute(sql_str_replace);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            //e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    /**
     * ¸ù¾Ýtb_fbs9100s_dfu±í¸üÐÂFBS9100S_DFUÀàÊý¾Ý
     * @param con_pool
     * @param al_param
     */
    public static void queryFbs9100S_DFU_StateBydev_id(MysqlConnPool con_pool, int dev_id, FBS9100S_DFU dfu_t)
    {
        String sql_str = "SELECT * FROM " + Sql_Mysql.FBS9100S_DFUState_Table + " WHERE dev_id = " + dev_id;
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        ResultSet res = sql.sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                if(null != dfu_t) {
                    dfu_t.DFU_EN = res.getBoolean("dfu_en");
                    dfu_t.DFU_FileName = res.getString("dfu_file");
                    dfu_t.DFU_WR_State = res.getInt("dfu_wr_stat");
                    dfu_t.DFU_DataBlockNum_Start = res.getInt("dfu_data_blocknum");
                    dfu_t.DFU_CommBuf_LEN = res.getInt("dfu_data_blocklen");
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
}