马自辉
【摘 要】Android提供了创建和使用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。在Android的SDK目录下有sqlite3工具,我们可以利用它创建数据库、创建表和执行一些SQL语句。
【关键词】Andriod;SQLite;数据库
1 打开或者创建数据库
在Android中使用SQLiteDatabase的静态方法。openOrCreateDatabase(String path,SQLiteDatabae.Cursor Factory factory)打开或者创建一个数据库。它会自动去检测是否存在这个数据库,如果存在则打开,不存在则创建一个数据库;创建成功则返回一个SQLiteDatabase对象,否则抛出异常FileNotFoundException。
2 创建表
创建一张表的步骤很简单:编写创建表的SQL语句,调用SQLiteDatabase的execSQL()方法来执行SQL语句。下面的代码创建了一张用户表,属性列为:id(主键并且自动增加)、sname(学生姓名)、snumber(学号)。
private void createTable(SQLiteDatabase db){//创建表SQL语句String stu_table="create table usertable(_id integer primary key autoincrement,sname text,snumber text)";//执行SQL语句db.execSQL(stu_table);}
3 插入数据
插入数据有两种方法:
1)SQLiteDatabase的insert(Stringtable,StringnullColumnHack,Content
Values values)方法,
参数1 表名称,
参数2 空列的默认值
参数3 ContentValues类型的一个封装了列名称和列值的Map;
2)编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行。代码:
private void insert(SQLiteDatabase db){//实例化常量值
ContentValues cValue=new ContentValues();//添加用户cValue.put("sname","xiaoming");//添加密码
cValue.put("snumber","01005");//调用insert()方法插入数据db.insert("stu_table",null,cValue);}
4 删除数据
删除数据也有两种方法:
1)调用SQLiteDatabase的delete(Stringtable,StringwhereClause,String[]whereArgs)方法
参数1 表名称
参数2 删除条件
参数3 删除条件值数组
2)编写删除SQL语句,调用SQLiteDatabase的execSQL()方法来执行删除。
第一种方法的代码:
private void delete(SQLiteDatabase db){//删除条件String
whereClause="id=";//删除条件参数String[]whereArgs={String
valueOf(2)};//执行删除db.delete("stu_table",whereClause,whereArgs);}
第二种方法的代码:
private void delete(SQLiteDatabase db){//删除SQL语句
String sql="delete from stu_table where_id=6";//执行SQL语句db.execSQL(sql);}
5 修改数据
修改数据有两种方法:
1)调用SQLiteDatabase的update(Stringtable,ContentValuesvalues,String whereClause,String[]whereArgs)方法
参数1 表名称
参数2 跟行列ContentValues类型的键值对Key-Value
参数3 更新条件(where字句)
参数4 更新条件数组
2)编写更新的SQL语句,调用SQLiteDatabase的execSQL执行更新。
第一种方法的代码:
private void update(SQLiteDatabase db){//实例化内容值ContentValues values=new ContentValues();//在values中添加内容values.put("snumber","101003");//修改条件String whereClause="id=";//修改添加参数String[]whereArgs={String.valuesOf(1)};//修改db.update("usertable",values,whereClause,whereArgs);}
第二种方法的代码:
private void update(SQLiteDatabase db){//修改SQL语句String sql="update stu_table set snumber=654321 where id=1";//执行SQLdb.execSQL(sql);}
6 查询数据
在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
public Cursorquery(Stringtable,String[]columns,Stringselection,String[]selectionArgs,StringgroupBy,Stringhaving,StringorderBy,Stringlimit);
各个参数的意义说明:
参数table:表名称
参数columns:列名称数组
参数selection:条件字句,相当于where
参数selectionArgs:条件字句,参数数组
参数groupBy:分组列
参数having:分组条件
参数orderBy:排序列
参数limit:分页查询限制
参数Cursor:返回值,相当于结果集ResultSet
Cursor是一个游标接口,提供了遍歷查询结果的方法,如移动指针方法move(),获得列值方法getString()等。
7 删除指定表
编写插入数据的SQL语句,直接调用SQLiteDatabase的execSQL()方法来执行private void drop(SQLiteDatabase db){//删除表的SQL语句String sql="DROP TABLE stu_table";//执行SQL db.execSQL(sql);}
[责任编辑:田吉捷]