美文网首页
Android 中原生数据库的插入,批量删除数据

Android 中原生数据库的插入,批量删除数据

作者: _L丶丶 | 来源:发表于2019-06-12 16:45 被阅读0次
最近在项目中用到了安卓中的原生数据库,记录一下里面用到的东西:1.数据库创建  2.数据库插入
3.数据库批量删除数据  4.获取数据库总条数

1.创建数据库(直接上代码吧)

public class DBManager {
    private static final String TAG = "DBManager";
    private static DBManager instance;
    public static final String TABLE_NAME = "upload";
    //创建 students 表的 sql 语句,  CREATE TABLE IF NOT EXISTS 是重点,这里如果数据库已经存在,
    //则会直接打开,没有的话会创建
    //id INTEGER PRIMARY KEY AUTOINCREMENT  id为主键并自增长
    private static final String CREATETABLE =
            "CREATE TABLE IF NOT EXISTS " + TABLE_NAME +
                    "(id INTEGER PRIMARY KEY AUTOINCREMENT,content TEXT)";

    public static DBManager getInstance() {
        if (instance == null) {
            synchronized (DBManager.class) {
                if (instance == null) {
                    instance = new DBManager();
                }
            }
        }
        return instance;
    }
    //初始化数据库
    public void initDB(Context context){
        SQLiteDatabase db = context.openOrCreateDatabase("database.db",MODE_PRIVATE,null);
        db.execSQL(CREATETABLE);
        db.close();
    }
}

2.向数据库插入数据

private void insert2DB(Context context,String jsonString){
        SQLiteDatabase db = context.openOrCreateDatabase("database.db", MODE_PRIVATE, null);
        ContentValues values = new ContentValues();
        values.put("content", jsonString);
        db.insert(TABLE_NAME, null, values);
        db.close();
    }

3.获取数据库总条数

 /**
     * 获取数据库upload表中数据总条数
     * @return
     */
    public long getDBCount(){
        SQLiteDatabase db = STAdMob.getApplicationContext().openOrCreateDatabase("database.db",MODE_PRIVATE,null);
        String sql = "select count(*) from upload";
        Cursor cursor = db.rawQuery(sql, null);
        cursor.moveToFirst();
        long count = cursor.getLong(0);
        cursor.close();
        db.close();
        return count;
    }

4.批量删除数据

//根据主键id进行数据的批量删除,startId:起始的id   endId:结束的id  即从startID开始删除,删除到endid
public void deleteDatabases(int startId,int endId){
        SQLiteDatabase db = STAdMob.getApplicationContext().openOrCreateDatabase("database.db",MODE_PRIVATE,null);
        db.execSQL("delete from " + TABLE_NAME + " where id" +
                ">=" + "'" + startId + "'" + " and id" + "<=" + "'" + endId +"'" );
        db.close();
    }
 可以批量删除数据了,那么批量的数据id是怎么来的呢,换句话说,你可能知道第一次删除123条,第二次删除456条,运行一小时之后,怎么知道数据库的数据是从那一条开始的呢?
  ps:数据库删除了id为1的数据后,id为2的数据会成为第一条数据
//从数据库最前面查询 num 条数据,这样,不仅可以知道数据的开始和结束,也可以看一下这一批删除的是那些数据
 public ArrayList<String> getSelectId(int num) {
        SQLiteDatabase db = STAdMob.getApplicationContext().openOrCreateDatabase("database.db",MODE_PRIVATE,null);
        Cursor cursor = db.rawQuery("select * from upload limit " + num ,null);
        ArrayList<String> list = new ArrayList<>();
        if (cursor.moveToFirst()){
            do {
                String id = cursor.getString(cursor.getColumnIndex("id"));
                list.add(id);
            }while (cursor.moveToNext());
        }
        cursor.close();
        db.close();
        return list;
    }

ok,就这些

相关文章

网友评论

      本文标题:Android 中原生数据库的插入,批量删除数据

      本文链接:https://www.haomeiwen.com/subject/qlblfctx.html