Android入门:SQLite

一、SQLite介绍

SQLite是一个小型的内嵌于Android的数据库;我们不需要引入驱动即可访问它;

SQLite可视化工具:SQLite Expert Professional 3;

下载地址:

二、预备阶段

在本节中,我们会为操作数据库做准备,,即本节并不会实际操作数据库,只是做一些前提步骤。下节中,我们将会对操作数据库进行讲解。

主要步骤:

(1)创建某个类(通常称为DatabaseHelper)继承SQLiteOpenHelper,并重写以下三个方法:

public DatabaseHelper(Context context);//带Context参数的构造函数,用来创建数据库public void onCreate(SQLiteDatabase db);//在创建数据库时调用public void onUpgrade(SQLiteDatabase db,int old,int newversion); //数据库版本更改时调用(2)创建数据库:SQLiteOpenHelperhelper = newnew DatabaseOpenHelper(this.getContext());SQLiteDatabase db = helper.getWritableDatabase();(3)SQL语句:db.execSQL(String sql);

具体模板代码如下:

import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DatabaseHelper extends SQLiteOpenHelper{private static final String TAG = "DatabaseHelper";private static int VERSION = 1;public DatabaseHelper(Context context) {super(context, "test.db", null, VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table 语句");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.i(TAG, "版本更新…");}}

当创建数据库时,database存放在/data/data/package/databases 目录中;

问题1:测试数据库是否能够成功创建

如果你想要测试创建数据库是否成功(你自己写的创建语句是否正确),只需要在AndroidTestCase中写入2行代码:

SQLiteOpenHelperhelper = newnew DatabaseOpenHelper(this.getContext());SQLiteDatabase db = helper.getWritableDatabase();运行测试文件后,即可在/data/data/package/databases中生成db文件,export到本地电脑后,用SQLite可视化工具看下就可以知道。

问题2:如何在onUpdate中完成版本更新

如果想要在版本更新时更新数据库,可以使用以下技巧:

db.execSQL("drop table if exists Table1");//如果存在Table1表,则删除这张表,可以重复执行多次,将全部的表删光。onCreate(db);//再次创建数据库的表结构

这样能够比较圆满的完成版本更新。

三、增删改查操作

本节将会讲解到怎样进行增删改查,首先要注意的是:

db.execSQL() 是执行“修改操作SQL”的。db.rawQuery() 是执行“查询SQL”的。

这些CRUD操作都是封装在SQLiteDatabase类中的。下面分别介绍:

1)获得SQLiteDatabase对象

2)插入操作

3)删除操作

4)查询操作

5)更新操作

1.获得SQLiteDatabase对象

SQLiteOpenHelper helper = new DatabaseHelper(this.getContext());

SQLiteDatabase db = helper.getWritableDatabase();

SQLiteDatabase db = helper.getReadableDatabase();//此函数内部其实也调用了getWritableDatabase()函数,即调用了此函数,也可以写数据

2.insert操作

插入操作有三种方法完成:

举例:

第一种方法:

db.insert("INSERT INTO person(name,age) VALUES(‘xiazdong’,20);");

第二种方法:

db.insert("INSERT INTO person(name,age) VALUES(?,?);", new Object[]{"xiazdong",20});

第三种方法:

ContentValues values = new ContentValues();values.put("name","xiazdong");values.put("age",20);db.insert("tablename",null,values);

有些人肯定想不通为什么第一种方法很累人,这里举个例子:

比如界面要求输入一个name值,如果用户输入了a’b’c’e,那么组拼的SQL语句需要对其中的单引号转义,这比较麻烦,因为需要人工慢慢转才行。

3.delete操作

Android提供了3种方法执行delete操作,其实和INSERT操作差不多。

4.update语句

Android提供了3种方法执行update操作,其实和INSERT操作差不多。

由于第三个方法比较难理解,因此给出一个例子:

为了一些琐事吵架,然后冷战,疯狂思念对方,最后和好。

Android入门:SQLite

相关文章:

你感兴趣的文章:

标签云: