Android 深入研究SQLite实例(五)
2012-06-07 15:02
267 查看
写在前面的话,本文转载自http://www.eoeandroid.com/thread-82030-1-1.html
public void delete(Integer... ids){ if(ids.length>0){ StringBuilder sb = new StringBuilder(); String[] strIds = new String[ids.length]; for(int i=0 ; i < ids.length ; i++){ sb.append('?').append(','); strIds[i] = String.valueOf(ids[i]); } sb.deleteCharAt(sb.length()-1); SQLiteDatabase database = dbmanger.getWritableDatabase(); //参数 表名 指定条件 条件占位值 database.delete("person", "personid in("+ sb + ")", strIds); } } public List getScrollData(int startResult, int maxResult){ List persons = new ArrayList(); SQLiteDatabase database = dbmanger.getWritableDatabase(); //参数 表名 返回字段 指定条件 指定条件映射值 是否分组 分组条件 是否排序 分页条件 Cursor cursor = database.query("person", new String[]{"personid", "name", "age"},null, null, null, null, "personid desc", startResult+ ","+ maxResult); while(cursor.moveToNext()){ persons.add(new Person(cursor.getInt(0), cursor.getString(1), cursor.getShort(2))); } return persons; } public long getCount(){ SQLiteDatabase database = dbmanger.getWritableDatabase(); Cursor cursor = database.query("person", new String[]{"count(*)"}, null, null, null, null, null); if(cursor.moveToNext()){ return cursor.getLong(0); } return 0; } } 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; }
相关文章推荐
- Android 深入研究SQLite实例(一) 之 业务类 sqlite版本管理类
- Android 深入研究SQLite实例(二)
- Android 深入研究SQLite实例(六)
- Android 深入研究SQLite实例(三)
- Android 深入研究SQLite实例(七)
- Android 深入研究SQLite实例(四)
- [Android实例] Android 深入解析光传感器(一)
- 记android学习之路----数据持久化之sqlite操作实例1
- Android 深入研究adb
- [Android实例] 使用SQLite存储以及读取Drawable对象【转】
- Android 深入研究adb(五)
- android 布局长度单位深入研究
- android开发者应该深入学习的10个开发实例
- 推荐android几本研究深入的书籍(对开发人员很有帮助)
- 深入研究Android Handler机制
- Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例(一)
- Android LLVM-Obfuscator C/C++ 混淆编译的深入研究
- android: listview与sqlite数据操作实例
- Android SQLite数据库操作实例
- 记android学习之路----数据持久化之sqlite操作实例2