SELECT * FROM tablename LIMIT 3 OFFSET 2;
offset 2:偏移两条数据,从第三个开始
limit 3 :取出三条数据
SQLiteOpenHelper
public class DBHelper extends SQLiteOpenHelper {
public static final String DB_NAME = "wfbk.db";
public static int DB_VERSION = 1;
private static DBHelper helper;
private static final int LOCAL_NUM = 200;//本地保存数据条数上限,多余删除,只保留最新
public static synchronized DBHelper getHelper(Context context) {
if (helper == null) {
helper = new DBHelper(context);
}
return helper;
}
private DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DBDetailMsg.CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DBDetailMsg.DROP_TABLE);
}
public long getDetailMsgNun() {
SQLiteDatabase db = helper.getReadableDatabase();
Cursor cursor = db.rawQuery("select count(*)from " + DBDetailMsg.TABLE_NAME, null);
cursor.moveToFirst();
Long count = cursor.getLong(0);
cursor.close();
return count;
}
public void deleteDetail() {
if (getDetailMsgNun() <= LOCAL_NUM) {
return;
}
SQLiteDatabase readableDatabase = helper.getReadableDatabase();
String sql = "delete from " + DBDetailMsg.TABLE_NAME + " where " + DBDetailMsg.ID + " <=" +
"(select " + DBDetailMsg.ID + " from " + DBDetailMsg.TABLE_NAME + " order by " +
DBDetailMsg.ID + " desc limit 1 offset " + LOCAL_NUM + ")";
readableDatabase.execSQL(sql);
}
public void saveDetail(AlarmDetailBean.DataBean bean) {
SQLiteDatabase database = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DBDetailMsg.ALARM_ADDRESS, bean.getAlarm_address());
values.put(DBDetailMsg.ALARM_ID, bean.getAlarm_id());
values.put(DBDetailMsg.ALARM_TIME, bean.getAlarm_time());
values.put(DBDetailMsg.PECCANCY_IMAGES, bean.getPeccancy_images());
values.put(DBDetailMsg.STATUS, bean.getStatus());
values.put(DBDetailMsg.PLATE_NUM, bean.getPlate_num());
values.put(DBDetailMsg.VEHICLE_COLOR, bean.getVehicle_color());
values.put(DBDetailMsg.VEHICLE_OWNER, bean.getVehicle_owner());
values.put(DBDetailMsg.VEHICLE_OWNER_ID_CARD, bean.getVehicle_owner_id_card());
values.put(DBDetailMsg.VEHICLE_TYPE, bean.getVehicle_type());
values.put(DBDetailMsg.VIOLATION_TYPE, bean.getViolation_desc());
values.put(DBDetailMsg.VEHICLE_TYPE_DESC, bean.getVehicle_type_desc());
values.put(DBDetailMsg.VIOLATION_DESC, bean.getViolation_desc());
values.put(DBDetailMsg.VEHICLE_BRAND, bean.getVehicle_brand());
database.insert(DBDetailMsg.TABLE_NAME, null, values);
}
public AlarmDetailBean queryDeteil(int id) {
AlarmDetailBean alarmDetailBean = null;
String sql = "SELECT * FROM " + DBDetailMsg.TABLE_NAME + " WHERE " + DBDetailMsg.ALARM_ID + "=" + id;
SQLiteDatabase database = getReadableDatabase();
Cursor cursor = database.rawQuery(sql, null);
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
String alarm_address = cursor.getString(cursor.getColumnIndex(DBDetailMsg.ALARM_ADDRESS));
int alarm_id = cursor.getInt(cursor.getColumnIndex(DBDetailMsg.ALARM_ID));
String alarm_time = cursor.getString(cursor.getColumnIndex(DBDetailMsg.ALARM_TIME));
String peccancy_images = cursor.getString(cursor.getColumnIndex(DBDetailMsg.PECCANCY_IMAGES));
String plate_num = cursor.getString(cursor.getColumnIndex(DBDetailMsg.PLATE_NUM));
int status = cursor.getInt(cursor.getColumnIndex(DBDetailMsg.STATUS));
String vehicle_color = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_COLOR));
String vehicle_owner = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_OWNER));
String vehicle_owner_id_card = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_OWNER_ID_CARD));
String vehicle_type = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_TYPE));
String violation_type = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VIOLATION_TYPE));
String vehicle_type_desc = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_TYPE_DESC));
String violation_desc = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VIOLATION_DESC));
String vehicle_brand = cursor.getString(cursor.getColumnIndex(DBDetailMsg.VEHICLE_BRAND));
alarmDetailBean = new AlarmDetailBean();
AlarmDetailBean.DataBean dataBean = new AlarmDetailBean.DataBean();
dataBean.setAlarm_address(alarm_address);
dataBean.setAlarm_id(alarm_id);
dataBean.setAlarm_time(alarm_time);
dataBean.setPeccancy_images(peccancy_images);
dataBean.setPlate_num(plate_num);
dataBean.setStatus(status);
dataBean.setVehicle_color(vehicle_color);
dataBean.setVehicle_owner(vehicle_owner);
dataBean.setVehicle_owner_id_card(vehicle_owner_id_card);
dataBean.setVehicle_type(vehicle_type);
dataBean.setViolation_type(violation_type);
dataBean.setVehicle_type_desc(vehicle_type_desc);
dataBean.setViolation_desc(violation_desc);
dataBean.setVehicle_brand(vehicle_brand);
alarmDetailBean.setData(dataBean);
cursor.moveToNext();
}
cursor.close();
return alarmDetailBean;
}
}
字段类
public class DBDetailMsg {
public static final String TABLE_NAME = "detail_msg";
public static String DROP_TABLE = dropTable();
public static String CREATE_TABLE = createTable();
public static final String ID = "_id";
public static final String ALARM_ADDRESS = "alarm_address";
public static final String ALARM_ID = "alarm_id";
public static final String ALARM_TIME = "alarm_time";
public static final String PECCANCY_IMAGES = "peccancy_images";
public static final String PLATE_NUM = "plate_num";
public static final String STATUS = "status";
public static final String VEHICLE_COLOR = "vehicle_color";
public static final String VEHICLE_OWNER = "vehicle_owner";
public static final String VEHICLE_OWNER_ID_CARD = "vehicle_owner_id_card";
public static final String VEHICLE_TYPE = "vehicle_type";
public static final String VIOLATION_TYPE = "violation_type";
public static final String VEHICLE_TYPE_DESC = "vehicle_type_desc";
public static final String VIOLATION_DESC = "violation_desc";
public static final String VEHICLE_BRAND = "vehicle_brand";
private static String createTable() {
StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("CREATE TABLE IF NOT EXISTS " + TABLE_NAME);
stringBuffer.append("(");
stringBuffer.append(ID + " integer primary key autoincrement,");
stringBuffer.append(ALARM_ADDRESS + " VARCHAR(25),");
stringBuffer.append(ALARM_ID + " INTEGER,");
stringBuffer.append(ALARM_TIME + " VARCHAR(15),");
stringBuffer.append(PECCANCY_IMAGES + " VARCHAR(50),");
stringBuffer.append(PLATE_NUM + " VARCHAR(25),");
stringBuffer.append(STATUS + " INTEGER,");
stringBuffer.append(VEHICLE_COLOR + " VARCHAR(5),");
stringBuffer.append(VEHICLE_OWNER + " VARCHAR(15),");
stringBuffer.append(VEHICLE_OWNER_ID_CARD + " VARCHAR(25),");
stringBuffer.append(VEHICLE_TYPE + " VARCHAR(25),");
stringBuffer.append(VIOLATION_TYPE + " VARCHAR(25),");
stringBuffer.append(VEHICLE_TYPE_DESC + " VARCHAR(25),");
stringBuffer.append(VIOLATION_DESC + " VARCHAR(25),");
stringBuffer.append(VEHICLE_BRAND + " VARCHAR(25)");
stringBuffer.append(")");
return stringBuffer.toString();
}
private static String dropTable() {
return "DROP TABLE IF EXISTS " + DBDetailMsg.TABLE_NAME;
}
}
使用
DBHelper.getHelper(this).saveDetail(dataBean);//保存
DBHelper.getHelper(this).deleteDetail();//清理