Android酱油笔记之SQLiteDatabase

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值