博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 常用数据操作封装类案例
阅读量:4676 次
发布时间:2019-06-09

本文共 3131 字,大约阅读时间需要 10 分钟。

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

你可能感兴趣的文章
架构:新浪架构师谈微博架构
查看>>
SQL 语句速查
查看>>
女孩·有义务让男孩走向成熟,·男孩·有责任让女孩学着长大(精简版)
查看>>
discuz 删除指定条件的资讯
查看>>
Android上下文菜单ContextMenu
查看>>
JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法
查看>>
Python & Django 学习笔记
查看>>
python第四天练习题
查看>>
【bzoj4543】Hotel加强版(thr)
查看>>
没有标题(1)
查看>>
React-Native学习手册----搭建基于ios平台的开发环境
查看>>
Android手机 Fildder真机抓包
查看>>
[stm32] 中断
查看>>
L1-043 阅览室
查看>>
我大学时代的好朋友要结婚了!
查看>>
RTP Payload Format for Transport of MPEG-4 Elementary Streams over http
查看>>
PAT-1134. Vertex Cover (25)
查看>>
git 命令图解
查看>>
分布式存储系统可靠性系列三:设计模式
查看>>
this关键字的由来及使用
查看>>