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();
}