为了操作SQLite数据库,首先继承SQLiteOpenHelper 建立DatabaseHelper类,如下示: public class DatabaseHelper extends SQLiteOpenHelper { ... ... @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub System.out.println("Create a Database."); db.execSQL("CREATE TABLE todoItemDB(Id int, Title varchar(50),Content varchar(50))"); } ... } 其中”CREATE TABLE todoItemDB(Id int, Title varchar(50),Content varchar(50))” 数据表为todoItemDB DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"myContent.db3"); SQLiteDatbase db = dbHelper.getReadableDatabase(); 其中new DatabaseHelper(MainActivity.this,”myContent.db3″); 数据表表为myContent.db3 Cursor cursor = db.rawQuery("select Title from todoItemDB where Id=?", new String[]{num-1+""}); 数据表为todoItemDB。 |
|
10分 |
myContent.db3是数据库,todoItemDB这个是表。
|
奥 谢谢!另外还有个问题,如下: DatabaseHelper dbHelper = new DatabaseHelper(MainActivity.this,"myContent.db3");//是执行完这句语句,建立或打开了myContent.db3数据库吗? SQLiteDatbase db = dbHelper.getReadableDatabase();//是执行完这句语句,建立或得到todoItemDB数据表吗? //初次执行这条语句,是不是会执行DatabaseHelper类的onCreate()方法? |
|
30分 |
首先myContent.db3表示的是一个数据库,数据库里面可以有很多表,他们都是在这个数据库中的,你可以这onCreate()里面去同时创建,然后todoItemDB 是这个库中的一个表。当有两个表在同一个数据库中的时候可以同时查询他们两个,对他们的数据可以交互操作。但是,假如他们不再同一个数据库中,那么他们之间就不能用在同一个数据库的语句当中。然后,你的第二个问题,执行那条的语句其实就是当这个数据库不存在的时候去创建并返回Helper类,存在则返回helper类,然后下面那句就是打开该数据库,使用getReadableDatabase()或者是getWriteableDatabase()都行,区别在于,当你的存储空间已经满的时候应该使用read,不能使用write,所以查询语句中都会使用read的方式来打开数据库。
|
谢谢!你回答的很仔细。 |