设为首页 加入收藏

TOP

Android SQLite 数据库学习(二)
2019-03-28 00:08:24 】 浏览:190
Tags:Android SQLite 数据库 学习
ice);
    int number = db.update("person",values,"name =?",new String[]{name});
    db.close();
    return number;
}


  在上述代码中,通过SQLiteDatebase对象db调用update()方法用来修改数据库中的数据,update()方法接收4个参数,第一个参数表示表名,第二个参数接收一个ContentValues对象,第三个参数可选择where语句,第四个参数表示whereClause语句中的占位参数列表,这些字符串会替换掉where条件中的 " ? "。


3. 删除一条数据


  下面介绍如何使用SQLiteDatabase的delete()方法修改person表中的数据,示例代码如下。


public int delete(long id) {
    SQLiteDatabase db = myHelper.getwritableDatabasel;
    int number = db.delete("person",_id =?,"name =?",new String[]{id});
    db.close();
    return number;
 }


  从上述代码中可以看出,删除数据不同于增加和修改数据,因为删除数据不需要ContentValues来添加数据。


4. 查询一条数据


  在进行数据查询时使用的是SQLiteDatabase的query0方法,该方法返回的是一个行数集合Cursor。 Cursor 是一个游标接口,提供了遍历查询结果的方法,如移动指针方法move(),获得列值方法getString()等,通过这些方法可以获取集合中的属性值以及序号等。


  需要注意的是,在使用完Cursor对象后,一定要及时关闭,否则会造成内存泄露。下面介绍如何使用SQLiteDatabase的query()方法查询数据,示例代码如下。


public boolean find(long id) {
    SQLiteDatabase db = helper .getReadableDatabase ();//获取可读取的 SQLiteDatabase 对象
Cursor cursor = db.query("person", null,“_id =?", new String[]{id}),null, null, null) ; boolean result = cursor.moveToNext () ; cursor.close(); // 关闭游标  db.close() ; return result; }


 


//Cursor 中的的重要方法:


c.move(int offset); //以当前位置为参考,移动到指定行 
c.moveToFirst();    //移动到第一行 
c.moveToLast();    //移动到最后一行 
c.moveToPosition(int position); //移动到指定行 
c.moveToPrevious(); //移动到前一行 
c.moveToNext();    //移动到下一行 
c.isFirst();        //是否指向第一条 
c.isLast();    //是否指向最后一条 
c.isBeforeFirst();  //是否指向第一条之前 
c.isAfterLast();    //是否指向最后一条之后 
c.isNull(int columnIndex);  //指定列是否为空(列基数为0) 
c.isClosed();      //游标是否已关闭 
c.getCount();      //总数据项数 
c.getPosition();    //返回当前游标所指向的行数 
c.getColumnIndex(String columnName);//返回某列名对应的列索引值,如果不存在返回-1 
c.getString(int columnIndex);  //返回当前行指定列的值 
c·getColumnIndexOrThrow(String columnName)  //从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。
c.close()  //关闭游标,释放资源


  在上述代码中,介绍了使用query()方法查询person表中的数据,query()方法接收7个参数,第一个参数表示表名称,第二个参数表示查询的列名,第三个参数接收查询条件子句,第四个参数接收查询子句对应的条件值,第五个参数表示分组方式,第六个参数接收having条件,即定义组的过滤器,第七个参数表示排序方式。


二、SQLite 基本操作方法 二


  这种操作方法类似于执行SQL语句 (语法和SQL server类似)。


1. 增加一条数据


db.execSQL("insert into perosn (name, price) values(?,?)",new String[]{name,price})


2. 修改一条数据


db.execSQL("update person set price =? where name =?", new String[]{price,name});


3. 删除一条数据


db.execSQL("delete from person where _id = ?",new String[]{id});


4. 查询一条数据


Cursor cursor = db.rawQuery("select _id,name,price from person where id =?",new String[]{id});


  从上述代码可以看出,查询操作与增、删、改操作有所不同,前面三个操作都是通过execSQL()方法执行SQL语句,而查询操作使用的是rawQuery()方法。这是因为查询数据库会返回一个结果集Cursor,而execSQL()方法则没有返回值。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL 开启慢查询&所有操作记录日.. 下一篇Oracle中游标Cursor使用实例

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目