您的位置:首页 > 移动开发 > Android开发

Android酱油笔记之SQLiteDatabase

2012-12-29 12:56 267 查看
Android提供了SQLiteDatabase代表数据库,当SQLiteDatabase和指定数据库实现某种联系,接下来就可以使用SQLiteDatabase对象来管理和操作数据库。

(1).SQLiteDatabase有以下的静态方法来打开一个文件对应的数据库:

static SQLiteDatabase openDatabase(String path,SQLiteDatabase.CursorFactory factory,int flags):打开地址为path的数据库文件。
static SQLiteDatabase openOrCreateDatabase(File file,SQLiteDatabase.CursorFactory factory):打开或创建file所代表的SQLite数据库文件
static SQLiteDatabase openOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory):打开或创建path所代表的SQLite数据库文件

(2).在代码中绑定了SQLiteDatabase对象后,接下来可以使用以下方法操作和管理数据库:

execSQL(String sql,Object[] bindArgs):执行带占位符的SQL语句
execSQL(String sql):执行SQL语句
insert(String table,String nullColumnHack,ContentValues values):向table表中插入数据
update(String table,ContentValues values,String whereClause,String[] whereArgs):更新table表中的特定数据
delete(String table,String whereClause,String[] whereArgs):删除table表中的特定数据
Cursor query(String table,String columns,String selections,String[] selectionArgs,String groupBy,String having,String orderBy):对table表执行查询
Cursor query(String table,String columns,String selections,String[] selectionArgs,String groupBy,String having,String orderBy,String limit):对table表执行查询,limit控制至多查询几条记录
Cursor query(boolean distinct,String table,String columns,String selections,String[] selectionArgs,String groupBy,String having,String orderBy,String limit):对table表执行查询,limit控制至多查询几条记录,distinct控制是否去除重复值
rawQuery(String sql,String[] selectionArgs):执行带占位符的SQL查询
beginTransaction():开始事务
endTransaction():结束事务

(3).使用SQLiteDatabase操作数据库

SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(“test.db3”,null);


如果test.db3文件存在,则打开该数据库,如果该文件不存在,则创建该数据库,而null参数表示使用默认的工厂

其返回一个SQLiteDatabase对象,可以实行以下操作

String sql = “create table mytable(id integer primary key,text varchar(255))”;
db.execSQL(sql);


该代码创建了一个名为mytable的表,其execSQL可执行任意合法的SQL语句

读取数据库

List sList = new ArrayList<String>();
try{
SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase("test.db3", null);
Cursor cur = database.rawQuery("SELECT value FROM t1", null);
while(cur.moveToNext()) {
int columnIndex = cur.getColumnIndex("value");
String str = cur.getString(columnIndex);
sList.add(str);
}catch(SQLException E){
E.printStackTrace();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: