数据库SQLiteOpenHelper :本地保存最新数据200条

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();//清理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值