今天介绍一下查询的写法。
比如说,数据库创建时产生了一张表格
db.execSQL("CREATE TABLE IF NOT EXISTS person (perid integer primary key, name varchar


(20), age INTEGER)");
查询一条语句时,如果知道唯一的id标识码,可以
Cursor cursor = db.rawQuery(“select name,age from person Where perid = ?”, new String


[perid+""]);  
Person p;
while (cursor.moveToNext()) {  
  p = new Person();
  p.setId(perid);  
  p.setName(cursor.getString(0));//获取第二列的值  
  p.setAge(cursor.getInt(1)));//获取第三列的值 
}  
如此,就获取了数据,同时赋值给对象p了。


如果要查询所有语句,写法类似上面
Cursor cursor = db.rawQuery(“select perid,name,age from person ”, null);  
List persons = new ArrayList();
while (cursor.moveToNext()) {  
  Person  p = new Person(cursor.getInt(0),cursor.getString(1),cursor.getInt(2));
  persons.add(p);
}  
返回的persons集合对象,则是所有的数据语录的集合。


如果查询的是一段数据的话,需要知道开始和结束的位置,通常都是按照分页计算,一般需要知道开始


的页数,和每页的数据量
String start = (pageNum-1)*pageSize+"";
String count = pageSize+"";
Cursor cursor = db.rawQuery(“select perid,name,age from person LIMIT ?,? ”, new String


[start,count]);  
List persons = new ArrayList();
while (cursor.moveToNext()) {  
  Person  p = new Person(cursor.getInt(0),cursor.getString(1),cursor.getInt(2));
  persons.add(p);
}
原理一直,都是通过游标控制指针,只是sql语句不一样。


如果要查询数据库中的表格一共有多少条数据,可以
Cursor cursor = db.rawQuery(“select COUNT(*) from person , null);  
cursor.moveToNext()  
int count = cursor.getInt(0);
 
数据库中还有一个事务的概念,比如从A账户往B账户转账,需要A减去300,B加上300,假如操作到一半


,突然断电了,或死机了,怎么办?A的钱少了,B的钱却没多,这要骂娘的。事务就起这个作用,保证


程序功能操作的完整性。
比如,上述例子中A把age借给了B(希望可以借年龄)


int from =A;int to =B;int amountAge = 5;
try{
db.beginTransaction();
db.execSQL(“UPDATE person SET age = age-? WHERE perid =?”, new Object[amountAge,from]); 
db.execSQL(“UPDATE person SET age = age+? WHERE perid =?”, new Object[amountAge,to]); 
db.setTransactionSuccessful();
}finally{
db.endTransaction();
}

更多相关文章

  1. Android(安卓)中数据库查询方法 query() 中的 selectionArgs 的
  2. Android利用wireshark抓取网络数据包
  3. Android(安卓)关于获取摄像头帧数据
  4. Android(安卓)创建SQLite数据库(一)
  5. Android开发:Android快速开发不可或缺的11个工具类 (二)
  6. android中的sqlit3数据库进行手机应用软件开发(自写的一个财务管
  7. Android(安卓)列表数据写入到本地Excel文件(包括图片)
  8. Android:AutoCompleteTextView和MultiAutoCompleteTextView及逗
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. Android SDK Manager
  2. Android横竖屏布局总结
  3. 关于AVD启动失败的问题--找不到文件篇
  4. Android 4.4(KitKat)窗口管理子系统 - 体
  5. Android(安卓)禁止EditView弹出软键盘问
  6. Android程序测试(2)——Activity测试
  7. 如何在Android中使用离线的谷歌地图Googl
  8. 《Android经验分享》周刊第10期
  9. Android 显示系统键盘搜索按键,实现搜索功
  10. android2.3 api demo 学习系列(1)--apidemo