SQLite数据库

Android提供了创建和使用SQLite数据库的API。
SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供了更简洁的功能。在Android的SDK目录下有sqlite3工具,我们可以利用它来创建数据库、创建表和执行一些SQL语句。
SQLiteDatabase常用方法
//创建或打开数据库

openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)

//添加一条记录

insert(Stringtable,String nullColumnHack,ContentValues values)

//删除一条记录

delete(Stringtable,String whereClause,String[] whereArgs)

//查询记录

query(Stringtable,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy)

//修改记录

update(Stringtable,ContentValues values,String whereClause,String[] whereArgs)

//执行一条SQL语句

execSQL(String sql)

//关闭数据库

close()

1. 打开或者创建数据库
–可以使用SQLiteDatabase的静态方法openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory)打开或者创建一个数据库。该方法的第一个参数是数据库创建路径,注意这个路径一定是数据库全路径。例如:/data/data/com.lovo/databases/dbName.db。第二个参数是指定返回一个Cursor子类的工厂,如果没有指定(null)则使用默认工厂。

–下面的代码创建了一个temp.db数据库。

SQLiteDatabase.openOrCreateDatabase(getFilesDir().toString()+"/temp.db",null);

2.创建表

–创建一张表很简单。首先,编写创建表的SQL语句,然后,调用SQLiteDatabase的execSQL()方法便可以创建一张表了。

public void createTable(View view) {

String sql ="create table t_stu(s_id integer primary key,s_name varchar(50),s_ageinteger)";

database.execSQL(sql);

}

3. 增加、修改和删除数据
•方法一:
–增加: insert(String table,String nullColumnHack,ContentValues values)
»该方法的第一个参数是表名称,第二个参数是空列的默认值,第三个参数是ContentValues类型的一个封装了列名称的列值的Map
–修改: update(String table,ContentValues values,String whereClause,String[] whereArgs)
»该方法的第一个参数是表名称,第二个参数是更新列ContentValues类型的键-值对(Map),第三个参数是更新条件(where子句)、第四个参数是更新条件值数组。
–删除: delete(String table,String whereClause,String[] whereArgs)
»该方法的第一个参数是表名称,第二个参数是删除条件,第三个参数是删除条件值数组

•方法二:调用SQLiteDatabase的execSQL()方法执行SQL

4.查询数据
–查询也可以使用两种方法。
•方法一:Cursor query(String table,String[] columns,String selection,String[] selectionArgs,String groupBy,String having,String orderBy,String limit)
•各个参数的意义说明如下。
–table:表名称
–colums:列名称数组
–selection:条件子句,相当于where
–selectionArgs:条件子句,参数数组
–groupBy:分组列
–having:分组条件
–orderBy:排序类
–limit:分页查询限制
–Cursor:返回值,相当于结果集ResultSet
•方法二:通过方法Cursor rawQuery(String sql,String [] selectionArgs)执行SQL语句。参数一是执行的SQL,参数二是可替换的条件数组。
Cursor是一个游标接口

Cursor的部分方法介绍

               方 法 名 称

                方 法 描 述

getCount()

总记录条数

isFirst()

判断是否第一条记录

isLast()

判断是否最后一条记录

moveToFirst()

移动到第一条记录

moveToLast()

移动到最后一条记录

move(int offset)

移动到指定记录

moveToNext()

移动到下一条记录

moveToPrevious()

移动到上一条记录

getColumnIndexOrThrow(String columnName)

根据列名称获得列索引

getInt(int columnIndex)

获得指定列索引的int类型值

getString(int columnIndex)

获得指定列索引的String类型值


SQLiteOpenHelper
–SQLiteOpenhelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承之,并实现其两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)来创建和更新数据库。

SQLiteOpenHelper常用方法

                   方 法 名 称

           方 法 描 述

SQLiteOpenHelper(Context context,String name,SQLiteDatabase.CursorFactory factory,int version)

构造方法,一般是传递一个要创建的数据库名称name参数

onCreate(SQLiteDatabase db)

创建数据库时调用

onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)

版本更新时调用

getReadableDatabase()

创建或打开一个只读数据库

getWritableDatabase()

创建或打开一个读写数据库




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值