测试数据库的分页操作,便于节省手机内存,适用初学者
package com.android.service;
import java.util.ArrayList;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.android.database.DBHelper;
/**
*
* @author shangzhenxiang
*
*/
public class DatabaseService {
private Context mContext;
private DBHelper dbHelper;
public DatabaseService(Context context) {
// TODO Auto-generated constructor stub
mContext = context;
dbHelper = new DBHelper(mContext);
}
//添加
public void insert(String title) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "insert into database(title) values(?)";
db.execSQL(sql, new String[]{title});
}
//删除
public void delete(String title) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "delete from database where title = ?";
db.execSQL(sql, new String[]{title});
}
//查找
public ArrayList<String> find(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "select * from database where _id = ? ";
Cursor c = db.rawQuery(sql, new String[]{String.valueOf(id)});
ArrayList<String> titles = new ArrayList<String>();
if(c.moveToNext()) {
String title =c.getString(c.getColumnIndexOrThrow(DBHelper.FIELD_TITLE));
titles.add(title);
return titles;
}
//不用忘记关闭Cursor。
c.close();
return null;
}
//更新
public void upDate(int id, String title) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "update database set title =? where _id = ?";
db.execSQL(sql, new String[]{String.valueOf(title), String.valueOf(id)});
}
//查询记录的总数
public long getCount() {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "select count(*) from database";
Cursor c = db.rawQuery(sql, null);
c.moveToFirst();
long length = c.getLong(0);
c.close();
return length;
}
/**
* 拿到所有的记录条数
* @param firstResult 从第几条数据开始查询。
* @param maxResult 每页显示多少条记录。
* @return 当前页的记录
*/
public Cursor getAllItems(int firstResult, int maxResult) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String sql = "select * from database limit ?,?";
Cursor mCursor = db.rawQuery(sql, new String[]{String.valueOf(firstResult), String.valueOf(maxResult)});
return mCursor;
}
}
资源文件列表
TestSqlite/.classpath , 280
TestSqlite/.project , 846
TestSqlite/AndroidManifest.xml , 1068
TestSqlite/bin/classes.dex , 10388
TestSqlite/bin/com/android/database/DBHelper.class , 2378
TestSqlite/bin/com/android/database/DBTest.class , 719
TestSqlite/bin/com/android/domain/Model.class , 743
TestSqlite/bin/com/android/service/DatabaseService.class , 3007
TestSqlite/bin/com/android/sqlite/R$attr.class , 340
TestSqlite/bin/com/android/sqlite/R$drawable.class , 400
TestSqlite/bin/com/android/sqlite/R$id.class , 492
TestSqlite/bin/com/android/sqlite/R$layout.class , 426
TestSqlite/bin/com/android/sqlite/R$string.class , 487
TestSqlite/bin/com/android/sqlite/R.class , 531
TestSqlite/bin/com/android/sqlite/TestListAdapter$ViewHolder.class , 458
TestSqlite/bin/com/android/sqlite/TestListAdapter.class , 2598
TestSqlite/bin/com/android/sqlite/TestSqlite.class , 3146
TestSqlite/bin/resources.ap_ , 11412
TestSqlite/bin/TestSqlite.apk , 18275
TestSqlite/default.properties , 362
TestSqlite/gen/com/android/sqlite/R.java , 1067
TestSqlite/proguard.cfg , 1159
TestSqlite/res/drawable-hdpi/icon.png , 4147
TestSqlite/res/drawable-ldpi/icon.png , 1723
TestSqlite/res/drawable-mdpi/icon.png , 2574
TestSqlite/res/layout/listitem.xml , 287
TestSqlite/res/layout/main.xml , 924
TestSqlite/res/values/strings.xml , 261
TestSqlite/src/com/android/database/DBHelper.java , 2405
TestSqlite/src/com/android/database/DBTest.java , 507
TestSqlite/src/com/android/domain/Model.java , 574
TestSqlite/src/com/android/service/DatabaseService.java , 2412
TestSqlite/src/com/android/sqlite/TestListAdapter.java , 1544
TestSqlite/src/com/android/sqlite/TestSqlite.java , 3581
