Android中使用SQLite

宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述Android中使用SQLite相关的知识,希望能为你提供帮助。
android系统内置了对SQLite数据库的支持,并提供了帮助类SQLiteOpenHelper。我们在开发时需要新建一个类继承SQLiteOpenHelper,并重写onCreate和onUpdate方法。onCreate方法仅在第一次新建数据库时调用,主要做创建表的操作。onUpdate方法在数据库版本更新时调用,根据业务需要做一些表的创建、删除、表结构改变等操作。同时需要实现一个构造函数,向父类的构造函数传入上下文对象、数据库名称、游标工厂和版本号。以下是一个简单的示例:

1 public class mysqliteHelper extends SQLiteOpenHelper { 2public MySqliteHelper(Context context) { 3// 创建一个test.db的数据库,版本号为1 4super(context, "test.db", null, 1); 5} 6 7@Override 8public void onCreate(SQLiteDatabase db) { 9// 创建表person 10db.execSQL("create table person(_id Integer primary key autoincrement, " + 11"name varchar(10), age Integer)"); 12} 13 14@Override 15public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 16// 删除表person,然后创建一个新的person表 17db.execSQL("delete table if exists person"); 18db.execSQL("create table person(_id Integer primary key, name text)"); 19} 20 }

 
使用SQL语句进行增删改查操作
增删改操作使用方法SQLiteDatabase.execSQL()。查询操作使用方法SQLiteDatabase.execSQL(),这个方法会返回一个游标对象,需要循环取出数据。下面是使用SQL语句进行增删改查操作的示例代码:
1 // 1、新建一个MySqliteHelper帮助类 2 MySqliteHelper mySqliteHelper = new MySqliteHelper(MainActivity.this); 3 // 2、拿到一个SQLiteDatabase类的实例 4 SQLiteDatabase database = mySqliteHelper.getWritableDatabase(); 5 // 3、插入数据 6 database.execSQL("insert into person values(1, ‘张三‘, 10)"); 7 database.execSQL("insert into person values(2, ‘李四‘, 20)"); 8 // 4、修改数据 9 database.execSQL("update person set age=30 where name=‘张三‘"); 10 // 5、删除数据 11 database.execSQL("delete from person where name=‘张三‘"); 12 // 6、查询所有数据,并存放到一个List中 13 Cursor cursor = database.rawQuery("select * from person where age> ?", new String[]{"10"}); 14 List< Map< String, Object> > resultList = new ArrayList< > (); //存放查询的结果 15 while (cursor.moveToNext()) { // 循环取数据 16Map< String, Object> map = new HashMap< > (); 17map.put("_id", cursor.getInt(cursor.getColumnIndex("_id"))); 18map.put("name", cursor.getString(cursor.getColumnIndex("name"))); 19map.put("age", cursor.getInt(cursor.getColumnIndex("age"))); 20resultList.add(map); 21 } 22 cursor.close(); // 关闭游标 23 database.close(); // 关闭数据库

 
使用API进行增删改查操作
SQLiteDatabase类提供了api用于增删改查操作,避免在代码里面直接写sql语句,对应的方法分别是insert、update、delete、query。下面是简单的示例代码:

1 // 1、新建一个MySqliteHelper帮助类 2 MySqliteHelper mySqliteHelper = new MySqliteHelper(MainActivity.this); 3 // 2、拿到一个SQLiteDatabase类的实例 4 SQLiteDatabase database = mySqliteHelper.getWritableDatabase(); 5 // 3、插入数据 6 ContentValues person = new ContentValues(); 7 person.put("name", "张三"); 8 person.put("age", 33); 9 long resultCreate = database.insert("person", null, person); // resultCreate大于0表明插入成功 10 // 4、更新数据 11 ContentValues newPerson = new ContentValues(); 12 newPerson.put("age", 55); 13 int resultUpdate = database.update("person", newPerson, "name=?", new String[]{"张三"}); 14 // 5、删除数据 15 int resultDelete = database.delete("person", "name=?", new String[]{"张三"}); 16 // 6、查询数据 17 // 拿到cursor后的操作和使用sql语句查询一致,此处省略... 18 Cursor cursor = database.query("person", null, null, null, null, null, null); 19 cursor.close(); // 关闭游标 20 database.close(); // 关闭数据库

【Android中使用SQLite】 







    推荐阅读