Android 常用数据操作封装类案例

1、DbHelper类 继承自SQLiteOpenHelper类,实现对数据库的基本操作

package com.example.utils;

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

/**
 * Created by Administrator on 2017/12/18.
 */

public class DbHelper extends SQLiteOpenHelper {

    //声明数据库的名称
    private static final String DATABASE_NAME="content.db";
    //声明版本号
    private static final int VERSION=1;
    //重写构造方法
    private DbHelper(Context context) {
        super(context, DATABASE_NAME,null, VERSION);
    }
    private DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, DATABASE_NAME,null, VERSION);
    }

    //创建数据库的方法
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sql="create table if not exists tb_stu(" +
                "_id integer primary key," +
                "sname text," +
                "sage integer," +
                "ssex text" +
                ")";
        sqLiteDatabase.execSQL(sql);
        sql="insert into tb_stu(sname,sage,ssex) values('Jack',23,'男')";
        sqLiteDatabase.execSQL(sql);
        sql="insert into tb_stu(sname,sage,ssex) values('Lucy',22,'女')";
        sqLiteDatabase.execSQL(sql);
    }

    //当数据库发生版本更新的方法
    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
        String sql="drop table tb_stu";
        sqLiteDatabase.execSQL(sql);
        onCreate(sqLiteDatabase);
    }

    //单例模式
    private static DbHelper dbHelper;

    public static synchronized DbHelper getInstance(Context context){
        if(dbHelper==null)
            dbHelper=new DbHelper(context);
        return dbHelper;
    }
}

2、使用单例模式,对DbHelper进行封装(一般在实现数据操作时,调用此类中的方法,而不是DbHelper类中的)

package com.example.utils;

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

/**
 * Created by Administrator on 2017/12/18.
 */

public class DbUtils {

    //声明SQLite数据库
    SQLiteDatabase sdb;
    //创建构造方法并实例化SQLiteDatabase对象
    public DbUtils(Context context){
        sdb=DbHelper.getInstance(context).getReadableDatabase();
    }

    //调用SQLiteDatabase对象的 添加 方法进行数据添加,返回值为添加数据行的ID
    public long insert(String tableName, ContentValues values){
        long id=sdb.insert(tableName,null,values);
        return id;
    }

    //调用SQLiteDatabase对象的 修改 方法进行数据添加,返回值为修改数据行的ID
    public int update(String tableName,ContentValues values,String where,String[] whereArgs){
        int i=sdb.update(tableName,values,where,whereArgs);
        return i;
    }

    //调用SQLiteDatabase对象的 删除 方法进行数据添加,返回值为删除行
    public int delete(String tableName,String where,String[] whereArgs){
        int i=sdb.delete(tableName,where,whereArgs);
        return i;
    }

    //调用SQLiteDatabase对象的 查询 方法进行数据添加,返回值为游标
    public Cursor query(String tableName,String[] columns,String selection,String[] selectArgs,String groupBy,String having,String orderBy,String limit){
        Cursor cursor=sdb.query(tableName,columns,selection,selectArgs,groupBy,having,orderBy,limit);
        return cursor;
    }
}
原文地址:https://www.cnblogs.com/QQ862668193/p/8057773.html