首页

android Sqlite 分页 示例源码(入门级)

java

2020-6-29

测试数据库的分页操作,便于节省手机内存,适用初学者

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;
	}
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
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
没有账号? 忘记密码?

社交账号快速登录