您的位置:首页 > 移动开发 > Android开发

Android周学习Step By Step(6)--Android的数据库SQLite

2011-06-30 20:41 525 查看
在Android中可供选择的存储方式有SharedPreferences、文件存储、SQLite数据库、Content
provider和网络。下面主要说一说SQLite

SQLite是轻量级的嵌入式数据库,麻雀虽小但五脏俱全。

l
新建数据库

通过SQLiteOpenHelper类可以生成一个数据库并对数据库的版本进行管理。当在程序中调用这个类的方法getWritableDataBase()或者getReadableDataBase()方法的时候,如果当时没有数据,那么Android系统就会自动生成一个数据库。代码如下:

1:  private static class DatabaseHelper extends SQLiteOpenHelper {

2:          DatabaseHelper(Context context) {

3:              super(context, DATABASE_NAME, null, DATABASE_VERSION);

4:          }

5:          @Override

6:          public void onCreate(SQLiteDatabase db) {

7:              String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE

8:                      + " text not null, " + BODY + " text not null " + ");";

9:              Log.i("haiyang:createDB=", sql);

10:              db.execSQL(sql);

11:          }

12:          @Override

13:          public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

14:          }

15:      }


其中onCreate(SQLiteDatabase)在数据库第一次生成的时候会调用这个方法,一般在这个方法里生成数据表。

onUpgrade(SQLiteDatabase,int,int)方法是当数据库升级的时候会被Android系统主动调用。一般在这个方法里边删除数据表,并建立新的数据表,以及一些其他的操作这取决于软件的需求。

l
新建数据表

数据库有了下一步就是建表了,和建数据库一样也是通过执行SQL语句进行建表的操作代码如下

1:  private void CreateTable() {

2:          SQLiteDatabase db = mOpenHelper.getWritableDatabase();

3:          String sql = "CREATE TABLE " + TABLE_NAME + " (" + TITLE

4:                  + " text not null, " + BODY + " text not null " + ");";

5:          Log.i("haiyang:createDB=", sql);

6:          try {

7:              db.execSQL("DROP TABLE IF EXISTS diary");

8:              db.execSQL(sql);

9:              setTitle("数据表成功重建");

10:          } catch (SQLException e) {

11:              setTitle("数据表重建错误");

12:          }

13:      }


对数据库的操作

对数据库的操作无非就是增、删、改、查了,Android和.NET是一样的,都是通过传SQL语句并执行来对数据进行相关的操作。以插入数据为例,具体代码如下(删除、修改操作同理,只需要改写SQL语句即可)

1:      /*

2:       * 插入两条数据

3:       */

4:      private void insertItem() {

5:          SQLiteDatabase db = mOpenHelper.getWritableDatabase();

6:          String sql1 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY

7:                  + ") values('haiyang', 'android的发展真是迅速啊');";

8:          String sql2 = "insert into " + TABLE_NAME + " (" + TITLE + ", " + BODY

9:                  + ") values('icesky', 'android的发展真是迅速啊');";

10:          try {

11:              Log.i("haiyang:sql1=", sql1);

12:              Log.i("haiyang:sql2=", sql2);

13:              db.execSQL(sql1);

14:              db.execSQL(sql2);

15:              setTitle("插入两条数据成功");

16:          } catch (SQLException e) {

17:              setTitle("插入两条数据失败");

18:          }

19:      }


也可以通过insert方法直接进行数据插入,这里相当于.NET中的SQLHelper一样,Android已经为我们写了增、删、改、查的方法,只需要加进去相应的参数即可。

在Android中查询到的数据将放在Cursor当中,Cursor是Android当中的一个接口,通过Cursor我们可以对从数据库中获得的数据进行相应的操作,相当于.NET中的DataTable或者DataSet。简单的查询代码如下

1:      private void showItems() {

2:          SQLiteDatabase db = mOpenHelper.getReadableDatabase();

3:          String col[] = { TITLE, BODY };

4:          Cursor cur = db.query(TABLE_NAME, col, null, null, null, null, null);

5:          Integer num = cur.getCount();

6:          setTitle(Integer.toString(num) + " 条记录");

7:      }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: