package com.ckt.shrimp.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import com.ckt.shrimp.utils.Log; /** * Created by ckt on 06/03/15. * * 2015.06.09 * optimize the BookInfoDataBaseHelper, contain string, the function, the container of key values. */ /** The construction of Table * ------Field-------------type-----------full size-----------e.g value------------------------- * | _id | integer | infinite | 1 * | isbn_id | varchar | 16 | 20480692 ... ... * --------------------------------------------------------------------------------------------- */ public class BookInfoDataBaseHelper extends SQLiteOpenHelper { private Context mContext; private static final int DATABASE_VERSION = 1; //private static final String DATABASE_NAME = "wosaosao"; private static final String SQL_TABLE_BOOK = "create table books (" + "_id integer primary key autoincrement, " + "id varchar(16) unique not NULL, "//book's id, not isbn. + "title nvarchar(60), " + "subtitle nvarchar(60), " + "author nvarchar(60), " + "publisher nvarchar(60), " + "pubdate varchar(12), "//2012-08-06, varchar?? or date? + "isbn13 varchar(20), "//978 71.... + "price float(7), " + "category nvarchar(20), "//综合, 测试,研发... + "category_id varchar(16), "//CKT-CD ZH-0001 + "bought_date varchar(12), " //varchar?? or date? + "applicant_id varchar(10) ,"//N222xxxx + "applicant_name nvarchar(20), " + "applicant_email varchar(30), " + "applicant_dep nvarchar(20), " + "actual_price float(7), " //is float or varchar? + "borrower_id varchar(10), " + "borrower_name nvarchar(20), " + "borrower_email varchar(20), " + "borrower_dep nvarchar(20), " + "borrowed_date varchar(12), " //varchar?? or date? + "pages integer(5), " + "rating float(5), " //rate is float ? e.g 5.3, 8.6 + "tags nvarchar(100), " //+ "author_info nvarchar(200), "//maybe too large, not used. //+ "content nvarchar(1000), " //maybe too large, not used. //+ "summary nvarchar(1000), " //maybe too large, not used. + "image blob)"; //image: bitmap for book. //not used /*private String SQL_TABLE_BORROW = "create table borrow (_id integer primary key autoincrement, " + "book_id varchar(8)," + "staff_id varchar(6)," + "library_date varchar(16)," + "expire_time varchar(16))";*/ private static final String SQL_TABLE_STAFF = "create table staffs (" + "_id integer primary key autoincrement, " + "staff_id varchar(10) unique not NULL, " + "staff_name nvarchar(20), " + "staff_email varchar(30), " + "staff_dep nvarchar(20))"; public BookInfoDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); Log.e(this, "BookInfoDataBaseHelper: name = " + name); mContext = context; } public BookInfoDataBaseHelper(Context context) { super(context, InfoContents.DATABASE_NAME, null, DATABASE_VERSION); Log.e(this, "BookInfoDataBaseHelper: name = " + InfoContents.DATABASE_NAME); //Log.e(this, android.util.Log.getStackTraceString( new Throwable()));//debug stack mContext = context; } @Override public void onCreate(SQLiteDatabase db) { Log.e(this, "onCreate db = " + db +"\n SQL_TABLE_BOOK = " + SQL_TABLE_BOOK +"\n SQL_TABLE_STAFF = " + SQL_TABLE_STAFF +"\n"); try { db.execSQL(SQL_TABLE_BOOK); db.execSQL(SQL_TABLE_STAFF); }catch (Exception exp) { Log.e(this, "Error, Create Table books, staffs, tables are exist!!!"); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // super.onUpgrade(db,oldVersion,newVersion); } }