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(安卓)UI设计——ListView控件和ArrayAdapter适配器(二)
  7. Android入门教程(三十一)------SQLite分页读取
  8. android Intent机制详解
  9. Android(安卓)WebView 开发详解(一)

随机推荐

  1. Android Intent大全
  2. Android上使用jspf插件框架的方法
  3. Android快速批量打渠道包(AndroidManifest
  4. android maven eclipse里面新建maven工程
  5. Android键盘相应的PC键各是哪些
  6. Android编译系统三
  7. android 仿人人网滑动侧边栏
  8. 什么是OPhone SDK?
  9. 如何设置圆角的EditText——Android移动
  10. android 管理应用的内存