whychdw
2019-11-28 fe8ff166e285b3fdd117a5f75d288bc068bb92d3
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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
package com.fgkj.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
 
public class DBHelper extends SQLiteOpenHelper {
    public final static String TAG = "DBHelper";
 
    private final static int VERSION = 1;
    private final static String DB_NAME = "fbs9600.db";
    private SQLiteDatabase db;
 
    //SQLiteOpenHelper子类必须要的一个构造函数
    public DBHelper(Context context, String name, CursorFactory factory,int version) {
        //必须通过super 调用父类的构造函数
        super(context, name, factory, version);
    }
 
    //数据库的构造函数,传递三个参数的
    public DBHelper(Context context, String name, int version){
        this(context, name, null, version);
    }
 
    //数据库的构造函数,传递一个参数的, 数据库名字和版本号都写死了
    public DBHelper(Context context){
        this(context, DB_NAME, null, VERSION);
    }
 
    // 回调函数,第一次创建时才会调用此函数,创建一个数据库
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.e(TAG, "onCreate: ######################################################################################" );
        this.db = db;
        System.out.println("Create Database");
        //创建tb_battinf
        Create_battinf(db);
        
        //创建tb_batttestdata_inf
        Create_batttestdata_inf(db);
 
        //创建tb_battresdata_inf表
        Create_battresdata_inf(db);
 
        //创建tb_alarm_param表
        //Create_alarm_param(db);
 
        //创建tb_battalarm_data表
        //Create_battalarm_data(db);
 
        //db.close();
        
    }
 
    //回调函数,当你构造DBHelper的传递的Version与之前的Version调用此函数
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        System.out.println("update Database");
 
    }
    
    //关闭数据库
    public void close(){
        if(db != null){
            db.close();
        }
    }
    //创建tb_battinf
    public static void  Create_battinf(SQLiteDatabase db){
        String Create_battinf_sql=" CREATE TABLE if not exists tb_battinf ( "+
                "num  integer PRIMARY KEY AUTOINCREMENT NOT NULL," +
                "BattGroupId  int(11) NOT NULL DEFAULT '0'," +
                "BattGroupName  varchar(100) NOT NULL DEFAULT ' '," +
                "BattGroupName1 varchar(100) NOT NULL DEFAULT ' '," +
                "BattFloatCurrent  float NOT NULL DEFAULT '0'," +
                "MonCount  int(11) NOT NULL DEFAULT '0'," +
                "MonCapStd  float NOT NULL DEFAULT '0'," +
                "MonVolStd  float NOT NULL DEFAULT '0'," +
                "MonResStd  float NOT NULL DEFAULT '0'," +
                "MonSerStd  float NOT NULL DEFAULT '0'," +
                "MonTmpStd  float NOT NULL DEFAULT '0'," +
                "BattProducer  varchar(45) NOT NULL DEFAULT '0'," +
                "BattInUseDate  date NOT NULL DEFAULT '2006-07-06'," +
                "station_install  tinyint(1) NOT NULL DEFAULT '0'" +
                ")";
        db.execSQL(Create_battinf_sql);
        String battinf_index_sql=" CREATE UNIQUE INDEX IF NOT EXISTS index_BattGroupId_unique ON tb_battinf (BattGroupId ASC) ";
        db.execSQL(battinf_index_sql);
    }
    //创建tb_batttestdata_inf
    public static void  Create_batttestdata_inf(SQLiteDatabase db){
         String Create_batttestdata_inf_sql="CREATE TABLE if not exists tb_batttestdata_inf ("+
                 "  num integer NOT NULL PRIMARY KEY AUTOINCREMENT," +
                 "  BattGroupId int(11) NOT NULL DEFAULT '0'," +
                 "  test_record_count int(11) NOT NULL DEFAULT '0'," +
                 "  test_type int(11) NOT NULL DEFAULT '0'," +
                 "  record_time_interval int(11) NOT NULL DEFAULT '0'," +
                 "  record_num int(11) NOT NULL DEFAULT '0'," +
                 "  test_starttime datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," +
                 "  record_time datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," +
                 "  test_timelong int(11) NOT NULL DEFAULT '0'," +
                 "  group_vol float NOT NULL DEFAULT '0'," +
                 "  test_curr float NOT NULL DEFAULT '0'," +
                 "  test_cap float NOT NULL DEFAULT '0'," +
                 "  max_monnum int(11) NOT NULL DEFAULT '0'," +
                 "  max_monvol float NOT NULL DEFAULT '0'," +
                 "  min_monnum int(11) NOT NULL DEFAULT '0'," +
                 "  min_monvol float NOT NULL DEFAULT '0'," +
                 "  mon_num int(11) NOT NULL DEFAULT '0'," +
                 "  mon_vol float NOT NULL DEFAULT '0'" +
                 ")";
        db.execSQL(Create_batttestdata_inf_sql);
        String index_battgroup_idsql="CREATE INDEX IF NOT EXISTS index_battgroup_id ON tb_batttestdata_inf (BattGroupId ASC)";
        db.execSQL(index_battgroup_idsql);
        String index_test_record_countsql= "CREATE INDEX IF NOT EXISTS index_test_record_count ON tb_batttestdata_inf (test_record_count ASC)";
        db.execSQL(index_test_record_countsql);
        String index_test_starttimesql="CREATE INDEX IF NOT EXISTS index_test_starttime ON tb_batttestdata_inf (test_starttime ASC)";
        db.execSQL(index_test_starttimesql);
    }
    //创建tb_batttestdata
    public static void  Create_batttestdata(SQLiteDatabase db,int battgroupid){
        String Create_batttestdata_sql="CREATE TABLE if not exists tb_batttestdata_" +battgroupid+"("+
                "  num integer NOT NULL PRIMARY KEY AUTOINCREMENT," +
                "  BattGroupId int(11) NOT NULL DEFAULT '0'," +
                "  test_record_count int(11) NOT NULL DEFAULT '0'," +
                "  test_type int(11) NOT NULL DEFAULT '0'," +
                "  record_num int(11) NOT NULL DEFAULT '0'," +
                "  test_starttime datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," +
                "  record_time datetime NOT NULL DEFAULT '1982-01-01 00:00:00'," +
                "  test_timelong int(11) NOT NULL DEFAULT '0'," +
                "  online_vol float NOT NULL DEFAULT '0'," +
                "  group_vol float NOT NULL DEFAULT '0'," +
                "  test_curr float NOT NULL DEFAULT '0'," +
                "  test_cap float NOT NULL DEFAULT '0'," +
                "  mon_num int(11) NOT NULL DEFAULT '0'," +
                "  mon_vol float NOT NULL DEFAULT '0'," +
                "  mon_res float NOT NULL DEFAULT '0'," +
                "  mon_tmp float NOT NULL DEFAULT '0'" +
                ")";
        db.execSQL(Create_batttestdata_sql);
        String index_test_record_countsql= "CREATE INDEX IF NOT EXISTS index_test_record_count_"+battgroupid+" ON tb_batttestdata_"+battgroupid+" (test_record_count ASC);";
        db.execSQL(index_test_record_countsql);
       
    }
 
 
    //创建tb_battresdata_inf
    public static void  Create_battresdata_inf(SQLiteDatabase db){
        String Create_battresdata_sql="CREATE TABLE if not exists tb_battresdata_inf"+"("+
                " num INTEGER NOT NULL  DEFAULT 1 PRIMARY KEY  AUTOINCREMENT," +
                " BattGroupId  INTEGER NOT NULL DEFAULT 1," +
                " test_record_count  INTEGER NOT NULL DEFAULT 1," +
                " test_type  INTEGER NOT NULL DEFAULT 1," +
                " test_starttime  datetime NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " record_time  datetime NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " group_vol  float NOT NULL DEFAULT 0.0," +
                " test_curr  float NOT NULL DEFAULT 0.1" +
                ")";
        db.execSQL(Create_battresdata_sql);
        String battgroupid_indexsql= "CREATE INDEX IF NOT EXISTS test_id_battgroupid_index ON tb_battresdata_inf  (BattGroupId ASC);";
        String test_record_count_indexsql= "CREATE INDEX IF NOT EXISTS test_id_test_record_count_index ON  tb_battresdata_inf (test_record_count ASC);";
        db.execSQL(battgroupid_indexsql);                           //创建电池组ID索引
        db.execSQL(test_record_count_indexsql);                     //创建电池组test_record_count索引
 
    }
 
    //创建tb_battresdata_batt_battgroupid
    public static void  Create_battresdata(SQLiteDatabase db,int battgroupid){
        String Create_battresdata_sql="CREATE TABLE if not exists tb_battresdata_"+battgroupid+"("+
                " num INTEGER NOT NULL DEFAULT 1 PRIMARY KEY AUTOINCREMENT," +
                " BattGroupId  INTEGER NOT NULL DEFAULT 1," +
                " test_record_count  INTEGER NOT NULL DEFAULT 1," +
                " test_type  INTEGER NOT NULL DEFAULT 1," +
                " test_starttime  datetime NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " group_vol  float NOT NULL DEFAULT 0.0," +
                " test_curr  float NOT NULL DEFAULT 0.0," +
                " mon_num  INTEGER NOT NULL DEFAULT 1," +
                " mon_vol  float NOT NULL DEFAULT 0.0," +
                " mon_tmp  float NOT NULL DEFAULT 0.0," +
                " mon_res  float NOT NULL DEFAULT 0.0," +
                " mon_ser  float NOT NULL DEFAULT 0.0," +
                " conn_res float NOT NULL DEFAULT 0.0" +
                ")";
        db.execSQL(Create_battresdata_sql);
        String battgroupid_indexsql= "CREATE INDEX IF NOT EXISTS res_id_battgroupid_index"+battgroupid+" ON tb_battresdata_"+battgroupid+" (BattGroupId ASC);";
        String test_record_count_indexsql= "CREATE INDEX IF NOT EXISTS res_id_test_record_count"+battgroupid+" ON  tb_battresdata_"+battgroupid+" (test_record_count ASC)";
        db.execSQL(battgroupid_indexsql);                           //创建电池组ID索引
        db.execSQL(test_record_count_indexsql);                     //创建电池组test_record_count索引
 
    }
 
 
    /**
     * 创建告警参数表
     * @param db
     */
    public static void Create_alarm_param(SQLiteDatabase db){
        String Create_alarm_param_str = "CREATE TABLE IF NOT EXISTS tb_alarm_param (" +
                    " num  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL," +
                    " alm_id  INTEGER NOT NULL DEFAULT 0," +
                    " alm_name  TEXT NOT NULL DEFAULT ''," +
                    " alm_high_coe  Double NOT NULL DEFAULT 0," +
                    " alm_low_coe  Double NOT NULL DEFAULT 0," +
                    " alm_high_en  INTEGER NOT NULL DEFAULT 0," +
                    " alm_low_en  INTEGER NOT NULL DEFAULT 0" +
                ");";
        db.execSQL(Create_alarm_param_str);
        //Log.e(TAG, "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Create_alarm_param: " + Create_alarm_param_str);
        String alm_id_indexsql  = "CREATE INDEX IF NOT EXISTS alm_id_index ON tb_alarm_param(alm_id ASC);";
        db.execSQL(alm_id_indexsql);
    }
 
    /**
     *  创建告警记录表
     * @param db
     */
    public static void Create_battalarm_data(SQLiteDatabase db){
        String Create_battalram_data = "CREATE TABLE IF NOT EXISTS tb_battalarm_data (" +
                " num  INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL DEFAULT 1," +
                " BattGroupId  INTEGER NOT NULL DEFAULT 0," +
                " MonNum  INTEGER NOT NULL DEFAULT 1," +
                " alm_id  INTEGER NOT NULL DEFAULT 0," +
                " alm_signal_id  INTEGER NOT NULL DEFAULT 0," +
                " alm_start_time  date NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " alm_end_time  date NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " alm_value  double NOT NULL DEFAULT 0," +
                " alm_is_confirmed  INTEGER NOT NULL DEFAULT 0," +
                " alm_confirmed_time  date NOT NULL DEFAULT '2000-01-01 00:00:00'," +
                " alm_cleared_type  INTEGER NOT NULL DEFAULT 0" +
                ");";
        //Log.e(TAG, "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Create_battalram_data: " + Create_battalram_data);
        db.execSQL(Create_battalram_data);
        String Create_alm_id_alarm_index = "CREATE INDEX IF NOT EXISTS alm_id_alarm_index ON tb_battalarm_data (alm_id ASC);";
        String Create_alm_signal_id_alm_index = "CREATE INDEX IF NOT EXISTS alm_signal_id_alm_index ON tb_battalarm_data (alm_signal_id ASC);";
        String Create_battgroupid_alm_index = "CREATE INDEX IF NOT EXISTS battgroupid_alm_index ON tb_battalarm_data (BattGroupId ASC);";
        db.execSQL(Create_alm_id_alarm_index);
        db.execSQL(Create_alm_signal_id_alm_index);
        db.execSQL(Create_battgroupid_alm_index);
 
    }
}