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:      }

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

onUpgradeSQLiteDatabaseintint)方法是当数据库升级的时候会被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当中,CursorAndroid当中的一个接口,通过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:      }

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. mybatisplus的坑 insert标签insert into select无参数问题的解决
  3. python起点网月票榜字体反爬案例
  4. Python list sort方法的具体使用
  5. python list.sort()根据多个关键字排序的方法实现
  6. android上一些方法的区别和用法的注意事项
  7. 《Android开发从零开始》——25.数据存储(4)
  8. android实现字体闪烁动画的方法
  9. Android系统配置数据库注释(settings.db)

随机推荐

  1. Android群英传第四章笔记·ListView使用
  2. Android 中文API (38) —— Spinner
  3. botoom tab + title bar
  4. TabLayout绑定Viewpager后不显示文字
  5. 对于Fragment的总结
  6. Android之通过shape.xml制作渐变背景色
  7. [Android Samples视频系列之ApiDemos] Ap
  8. Android(安卓)Studio 中文乱码问题
  9. android视图切换动画:ViewAnimator类及其
  10. 创建SqliteDatabase