zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    eclipse安装pydev
    pymongo常见的高级用法
    android sdk下载SDK Platform失败记录
    centos7 yum安装redis(转)
    centos7 将服务添加到systemctl
    python Parent.__init()和super(Child, self)的区别
    流畅的python第二十章属性描述符学习记录
    流畅的python第十九章元编程学习记录
    python 协程的学习记录
    [转]Shell脚本之无限循环的两种方法
  • 原文地址:https://www.cnblogs.com/QQ862668193/p/8057773.html
Copyright © 2011-2022 走看看