一,创建一个公共的DBAdapter;
为了在整个程序运行期间调用该公共的数据库,我们定义了一个扩展自Application的CommDB类:
1,创建唯一的数据库:
1 public class CommDB { 2 3 public static final String DATABASE_NAME = "myDatabase"; //数据库名称 4 5 public static final int DATABASE_VERSION = 1; 6 //创建该数据库下学生表的语句 7 private static final String CREATE_TABLE_Students = 8 "CREATE TABLE if not exists " + StudentDB.SQLITE_TABLE + " (" + 9 StudentDB.KEY_ROWID + " integer PRIMARY KEY autoincrement," + 10 StudentDB.KEY_AGE + "," + 11 StudentDB.KEY_GENDER + "," + 12 StudentDB.KEY_NAME + "," + 13 " UNIQUE (" + StudentDB.KEY_NAME +"));";//暂时规定不能重名 14 //创建该数据库下教师表的语句 15 private static final String CREATE_TABLE_Teachers = 16 "CREATE TABLE if not exists " + TeacherDB.SQLITE_TABLE + " (" + 17 TeacherDB.KEY_ROWID + " integer PRIMARY KEY autoincrement," + 18 TeacherDB.KEY_AGE + "," + 19 TeacherDB.KEY_GENDER + "," + 20 TeacherDB.KEY_NAME + "," + 21 " UNIQUE (" + TeacherDB.KEY_AGE +"));"; 22 private final Context context; 23 private DatabaseHelper DBHelper; 24 private SQLiteDatabase db; 25 /** 26 * Constructor 27 * @param ctx 28 */ 29 public CommDB(Context ctx) 30 { 31 this.context = ctx; 32 this.DBHelper = new DatabaseHelper(this.context); 33 } 34 35 private static class DatabaseHelper extends SQLiteOpenHelper 36 { 37 DatabaseHelper(Context context) 38 { 39 super(context, DATABASE_NAME, null, DATABASE_VERSION); 40 } 41 42 @Override 43 public void onCreate(SQLiteDatabase db) 44 { 45 db.execSQL(CREATE_TABLE_Students);//创建学生表 46 db.execSQL(CREATE_TABLE_Teachers);//创建教师表 47 } 48 49 @Override 50 public void onUpgrade(SQLiteDatabase db, int