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=""; 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 stub 19 } 20 21 @Override 22 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 @Override 29 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 30 // 删除表 31 String sql = "DROP TABLE IF EXISTS " + TableName; 32 db.execSQL(sql);34 } 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:使用insert 11 ContentValues cv=new ContentValues(); 12 cv.put("provincial", "天津"); 13 cv.put("number", 30); 14 db.insert("city", null, cv); 15 //修改数据 16 //1.使用execSQL 17 String sql2="update city set lastname = ‘25‘ where provincial=‘天津‘"; 18 db.execSQL(sql2); 19 //2.使用insert 20 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"的数据库文件。