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);
|
|
}
|
}
|