Android 深入研究SQLite实例(四)

写在前面的话,本文转载自http://www.eoeandroid.com/thread-81914-1-1.html

//删除最后一个字符
sb.deleteCharAt(sb.length()-1);
SQLiteDatabase database= dbmanger.getWritableDatabase();
//execSQL是执行sql语句
database.execSQL("delete from person where personid in("+sb+")",(Object[])ids);
}
}

//分页查询 一
public List getdatePerson(int startResult,int maxResult){
List persons=new ArrayList();
SQLiteDatabase database= dbmanger.getWritableDatabase();
//Cursor是游标类 游标在数据库中其实就是一个数据集

//rawQuery(String sql,String[]s) 参数一 是一个sql语句 参数二是参数一sql语句中条件的占位符所存的具体值,这些值是一个字符string数组

Cursor cursor = database.rawQuery("select * from person limit ?,?",new String[]{String.valueOf(startResult), String.valueOf(maxResult)});

while(cursor.moveToNext()){
persons.add(new Person(cursor.getInt(0), cursor.getString(1), cursor.getShort(2)));
}
return persons;
}

//分页查询 二
public Cursor getdateRawPerson(int startResult,int maxResult){
// List persons=new ArrayList();
SQLiteDatabase database= dbmanger.getWritableDatabase();
//Cursor是游标类 游标在数据库中其实就是一个数据集
//rawQuery(String sql,String[]s) 参数一 是一个sql语句 参数二是参数一sql语句中条件的占位符所存的具体值,这些值是一个字符string数组

return database.rawQuery("select personid as _id,name,age from person limit ?,?",new String[]{String.valueOf(startResult), String.valueOf(maxResult)});
}
//获取总记录数
public long getcount(){
SQLiteDatabase database= dbmanger.getWritableDatabase();
//Cursor是游标类 游标在数据库中其实就是一个数据集

Cursor cursor = database.rawQuery("select count(*) from person", null);
if(cursor.moveToLast()){
return cursor.getLong(0);
}
return 0;
}
}
业务类2
package eoe.demo;

import java.util.ArrayList;
import java.util.List;
import it.bean.Person;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

/**
* 此类不需要基于sql语句 进行增删查改操作
* 但是SQLiteDatabase对象是通过内部构造sql语句而执行操作的
*
*/

public class PersonSQLservice {
private MangerDatabase dbmanger;
public PersonSQLservice(Context context) {
dbmanger=new MangerDatabase(context);
}

public void save(Person person){
SQLiteDatabase database = dbmanger.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("age", person.getAge());
//参数 表名 构建insert语句的正确字段 字段映射
database.insert("person", "name", values);
}

public void update(Person person){
SQLiteDatabase database = dbmanger.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", person.getName());
values.put("age", person.getAge());

//参数 表名 更新映射关系 条件 占位符值
database.update("person", values, "personid=?" , new String[]{String.valueOf(person.getPersonId())});
}

public Person find(Integer id){
SQLiteDatabase database = dbmanger.getWritableDatabase();
//执行查询 参数 表名 返回的字段 指定条件 指定条件值 是否分组 分组条件 是否排序
Cursor cursor = database.query("person", new String[]{"personid", "name", "age"},"personid=?", new String[]{String.valueOf(id)}, null, null, null);


if(cursor.moveToNext()){
return new Person(cursor.getInt(0), cursor.getString(1), cursor.getShort(2));
}
return null;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值