Android提供了五种存储方式,分别是文件、sharedPreference、网络、SQLite、ContentProvider。SQLite是一种轻型数据库,具有独立性、隔离性、跨平台、多语言接口、安全性等优点,目前应用较为广泛。现在主要说一下在Android中SQLite的使用。
首先,我新建一个数据库操作类DataBaseHelper,让他继承自SQLiteOpenHelper,然后复写其中的两个方法onCreate和onUpgrade。
1 package com.example.sqlitedb; 2 3 import android.content.Context; 4 import android.database.sqlite.SQLiteDatabase; 5 import android.database.sqlite.SQLiteDatabase.CursorFactory; 6 import android.database.sqlite.SQLiteOpenHelper; 7 8 public class DataBaseHelper extends SQLiteOpenHelper{ 9 10 private final static String DBName="sqlite3.db";11 private final static String TableName="city";12 private final static String firstname="provincial";13 private final static String lastname="number";14 15 public DataBaseHelper(Context context, String name, CursorFactory factory,16 int version) {17 super(context, DBName, factory, version);18 // TODO Auto-generated constructor stub19 }20 21 @Override22 public void onCreate(SQLiteDatabase db) {23 //创建表24 String sql=("CREATE TABLE"+TableName+"(INTEGER PRIMARY KEY AUTOINCREMENT,"+firstname+" VARCHAR, "+lastname+" SMALLINT)");25 db.execSQL(sql);26 }27 28 @Override29 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {30 // 删除表31 String sql = "DROP TABLE IF EXISTS " + TableName; 32 db.execSQL(sql); }35 36 }
然后,使用sql语句来实现一些常用的SQLite的操作,具体如下:
1 @Override 2 public void onCreate(SQLiteDatabase db) { 3 //创建表 4 String sql="CREATE TABLE city (INTEGER PRIMARY KEY AUTOINCREMENT, provincial VARCHAR, number SMALLINT)"; 5 db.execSQL(sql); 6 //插入数据 7 //方法1:使用execSQL 8 String sql1="insert into city (firstname,lastname) values ('北京','20')"; 9 db.execSQL(sql1);10 //方法2:使用insert11 ContentValues cv=new ContentValues();12 cv.put("provincial", "天津");13 cv.put("number", 30);14 db.insert("city", null, cv);15 //修改数据16 //1.使用execSQL17 String sql2="update city set lastname = '25' where provincial='天津'";18 db.execSQL(sql2);19 //2.使用insert20 ContentValues cv1=new ContentValues();21 cv1.put("provincial", "北京");22 cv1.put("number", 30);23 db.insert("city", null, cv);24 //删除数据25 String sql3 = "delete from city where provincial='北京'";26 db.execSQL(sql3);27 //关闭数据库28 db.close();29 }
执行以上代码,会在/data/data/com.example.sqlitedb/databases目录下生成一个名为"sqlite3.db"的数据库文件。