Android 开发SQLiteDatabase操作类

package com.test.sqlitetest;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

/**
 * Created by Alan on 2016/05/13 0013.
 */
public class DBbridge {

    private Context mContext;
    private SQLiteDatabase db;
    private DBHelper dbHelper;

    public static final String DB_NAME = "db_account.db";
    public static final int DB_VERSION = 1;

    public DBbridge(Context ctx){
        mContext = ctx;
        dbHelper = new DBHelper(mContext,DB_NAME,null,DB_VERSION);
        db = dbHelper.getReadableDatabase();
    }

    /**
     * 插入数据
     * @param table 表名
     * @param values 要插入的数据对象
     * @return 返回-1则失败
     */
    public long insert(String table , ContentValues values){
        return db.insert(table,null,values);
    }

    /**
     * 修改数据
     * @param table 表名
     * @param values 要更新的数据对象
     * @param where 条件,如: id=? 或者 id=? and name like ?
     * @param whereArgs 条件对应数组值 new String[] {"1"} 或者 new String[] {"1","admin"}
     * @return
     */
    public int update(String table ,ContentValues values ,String where , String[] whereArgs){
        return db.update(table, values, where, whereArgs);
    }

    /**
     *删除数据
     * @param table 表名
     * @param where 条件,如: id=? 或者 id=? and name like ?
     * @param whereArgs 条件对应数组值 new String[] {"1"} 或者 new String[] {"1","admin"}
     * @return
     */
    public int delete(String table , String where , String[] whereArgs){
        return db.delete(table, where, whereArgs);
    }

    /**
     * 查询数据
     * @param table 表名
     * @param cls 列字段名
     * @param select 条件,如: id=? 或者 id=? and name like ?
     * @param selectionArgs 条件对应数组值 new String[] {"1"} 或者 new String[] {"1","admin"}
     * @param groupBy 分组
     * @param orderBy 排序
     * @return
     */
    public Cursor query(String table, String[] cls, String select, String[] selectionArgs, String groupBy, String orderBy, String limit){
        if(orderBy == null || orderBy.isEmpty()){
            orderBy = "id desc";
        }
        if(limit == null || limit.isEmpty()){
            limit = "0,30";
        }

        return db.query(table, cls, select, selectionArgs, groupBy, null, orderBy, limit);
    }

    public void execSQL(String sql){
        db.execSQL(sql);
    }

    public int getVersion(){
        return db.getVersion();
    }


    public class DBHelper extends SQLiteOpenHelper {
        private static final String CREATE_DB_SQL = "CREATE TABLE account (id INTEGER PRIMARY KEY autoincrement,name TEXT NOT NULL,money NUMERIC,remark TEXT,add_time long);";
        private static final String UPDATE_DB_SQL = "";

        public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            db.execSQL(CREATE_DB_SQL);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL(UPDATE_DB_SQL);
        }
    }


}


以上的代码是SQLite操作类的源代码,实现的方法很简单:

1.新增DBHelper类,继承SQLiteOpenHelper,并且实现onCreate跟onUpgrade方法。

2.新增DBbridge类,用来实现数据库的增、删、改、查等4个方法。

 

 

Leave a Comment

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |