package com.yeetou.xinyongkaguanjia.db;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static DBHelper dbHelper;
private int openedConnections = 0;
public synchronized SQLiteDatabase getReadableDatabase() {
openedConnections++;
return super.getReadableDatabase();
}
public synchronized SQLiteDatabase getWritableDatabase() {
openedConnections++;
return super.getWritableDatabase();
}
public synchronized void close() {
openedConnections--;
if (openedConnections == 0) {
super.close();
}
}
public static DBHelper dbHelper() {
return dbHelper;
}
public static void init(Context context) {
if (dbHelper == null) {
dbHelper = new DBHelper(context);
}
}
private DBHelper(Context context) {
super(context, "yitou.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String card_streams = "create table card_streams" +
"(_id integer primary key," +
"thedate long," +
"year integer," +
"month integer," +
"day integer," +
"description varchar(255)," +
"amount float," +
"category varchar(20)," +
"message_id integer," +
"bank_card_id varchar(20)," +
"bill_id integer," +
"isPay integer check(isPay in(0,1)),"+ //1为支出,0为收入
"currency vachar(20)," +
"state integer," +
"card_number vachar(20)," +
"bank_logo vachar(20)," +
"bank_name vachar(20)" +
");";
String lccp = "create table lccp" +
"(_id integer primary key," +
"bank_name varchar(20)," +
"bank_logo vachar(20)," +
"thedate long," +
"is_choose boolean" +
");";
String account = "create table account" +
"(_id integer primary key," +
"phone varchar(20)," +
"email varchar(255)," + //易投邮箱
"secret varchar(255)," +
"token varchar(20)," + //15位IEMI码
"msgscan_at long," +
"syn_at long," +
"iv varchar(255));";
String email = "create table email" +
"(_id integer primary key," +
"email varchar(255)," + //
"state integer," + //
"created_at long," + //
"updated_at long);";
String category = "create table category(_id integer primary key," +
"name varchar(20));";
String card_bank_cards = "create table card_bank_cards" +
"(_id integer primary key," +
"card_type vachar(20)," + //credit or
"bank_id integer," + //card_bank的主键
"name vachar(20)," + //用户姓名
"sex varchar(255) default '先生(女士)'," +
"number vachar(20)," + //后四位数字
"credit_limit integer," +
"cash_limit integer," +
"source_from vachar(20)," +
"created_at long," +
"updated_at long," +
"bank_logo vachar(20)," +
"bank_name vachar(20));";
String card_bills = "create table card_bills" +
"(_id integer primary key," +
"bill_type vachar(20) default 'RMB'," + //defalut RMB
"year vachar(10)," + //
"month vachar(10)," + //
"due_date long," + //到期还款日
"billing_date long," + //账单日
"new_balance float," + //本期还款总额
"min_payment float," + //本期最底还款额
"pay_state integer," + //0未还 1部分 2还清
"created_at long," +
"updated_at long);";
String card_to_bills = "create table card_to_bills" +
"(_id integer primary key," +
"bank_card_id integer," +
"bill_id integer," +
"created_at long," +
"updated_at long);";
String card_banks = "create table card_banks" +
"(_id integer primary key," +
"name varchar(20)," + //"招商银行"
"spell_name varchar(20),"+ //"zhaoshang"
"logo varchar(20),"+ //"zhaoshang"
"phone varchar(20)," + //"95555"
"cc_yd varchar(20)," + //移动电话
"cc_lt varchar(20),"+ //联通电话
"hotline varchar(50)," + //"拨打4008205555"
"manual varchar(50)," + //"拨打4008205555→身份证号码和查询密码→按9→人工服务→"
"loss varchar(50),"+ //"拨打4008205555→按2#→挂失"
"query_bill varchar(50)," + //"移动用户发送#ZD到1065795555"
"query_limit varchar(50)," + //"移动用户发送#ED到1065795555"
"query_credit varchar(50));"; //"移动用户发送#JF到1065795555"
String msgs ="create table msgs" +
"(_id integer primary key," +
"raw_id varchar(20)," +
"address varchar(20),"+
"received_tm long," +
"body varchar(500));";
db.execSQL(card_streams);
db.execSQL(lccp);
db.execSQL(account);
db.execSQL(email);
db.execSQL(card_bills);
db.execSQL(card_to_bills);
db.execSQL(category);
db.execSQL(card_bank_cards);
db.execSQL(card_banks);
db.execSQL(msgs);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF card_streams");
db.execSQL("DROP TABLE IF account");
db.execSQL("DROP TABLE IF email");
db.execSQL("DROP TABLE IF card_bank_cards");
db.execSQL("DROP TABLE IF card_banks");
db.execSQL("DROP TABLE IF card_bills");
db.execSQL("DROP TABLE IF card_to_bills");
db.execSQL("DROP TABLE IF category");
db.execSQL("DROP TABLE IF lccp");
db.execSQL("DROP TABLE IF msgs");
onCreate(db);
}
}