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);}//创建数据库的方法
    @Overridepublic 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);}//当数据库发生版本更新的方法
    @Overridepublic 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对象的 添加 方法进行数据添加,返回值为添加数据行的IDpublic long insert(String tableName, ContentValues values){long id=sdb.insert(tableName,null,values);return id;}//调用SQLiteDatabase对象的 修改 方法进行数据添加,返回值为修改数据行的IDpublic 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

Android 常用数据操作封装类案例相关推荐

  1. Android常用数据存储之SharedPreferences存储和读取用法分享

    一:Android常用数据存储,一共有五种方式,分别是 1.SharedPreferences储存数据, 2.文件存储 3.SQLite数据存储 4.ContentProvider储存数据 5.网络存 ...

  2. torch.Tensor常用数据操作汇总与自动求梯度

    在深度学习中,通常会频繁地对数据进行操作,在PyTorch中,torch.Tensor是存储和变换数据的主要工具(Tensor和NumPy的多维数组非常类似,Tensor提供GPU计算和自动求梯度等更 ...

  3. Pandas数据分析常用数据操作(3年总结)

    原创文章,转载请注明来源,谢谢 导入设置 import odps import numpy as np import pandas as pd import matplotlib as mpl imp ...

  4. mybatis 2 -常用数据操作

    1.写入数据并获取自增ID XML配置: <!-- 写入数据获取自增ID --><insert id="insertLog" parameterType=&quo ...

  5. Flask ORM SQLAlchemy数据操作完整案例

    ORM ORM 全拼Object-Relation Mapping. 中文意为 对象-关系映射. 主要实现模型对象到关系数据库数据的映射. 比如:把数据库表中每条记录映射为一个模型对象 优点 只需要面 ...

  6. redis数据类型及常用数据操作

    redis数据类型及操作 1 官方文档(大全) 2 String-字符串 3 Hash-字典 4 List-列表 5 Set-无序集合 6 Sorted Set-有序集合 7 Pub/Sub-订阅/发 ...

  7. mysql 查询姓王_mysql常用数据操作之查

    将数据库查询单独开来是因为使用最多,也是技巧最多,同时面试最容易问的部分 简单查询 select * from table_name; select name,age from table_name; ...

  8. android常用代码合集,Android常用代码

    1.图片旋转 Bitmap bitmapOrg = BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable. ...

  9. Cocos2d-x数据模块教程03:XML数据操作

    XML也称可扩展标记语言,在游戏开发中它常常用于保存游戏数据信息,如最高分.游戏等级等信息,另外也常用来描述一些资源等.加载动画的plist文件.瓦片地图编辑器到处的地图格式tmx文件,实际上都是特定 ...

最新文章

  1. 10624 - Super Number
  2. .net中用css控制GridView样式
  3. php中对象怎么访问i属性_PHP--序列化与反序列化详解
  4. HDU 6136 Death Podracing (堆)
  5. 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
  6. 简历中的项目如何体现实战能力? 如何有技巧地描述你做过的 project?
  7. python中关键字参数的特点_Python中的*可变参数与**关键字参数
  8. 进阶篇-用户界面:4.Android中常用组件
  9. jQuery 实现一个简单的信息反馈或者信息收集的页面
  10. dubbo-环境搭建,实现一个简单地dubbo实例(附github地址)
  11. php功能代码下载,PHP实现下载功能的代码
  12. 解释一下pack和unpack
  13. 2018年最新税收分类编码_如何免费在线进行2018年税收
  14. JavaScript的回调函数及Ajax中的回调函数
  15. C/C++利用netsh设置动态IP和静态IP
  16. 2B领域最大的媒体沙龙又来了,你以什么姿势参加?
  17. Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
  18. Robotaxi里程竞赛开启,激光雷达成新热点 | 2021年自动驾驶趋势解读
  19. 小程序为什么有的方法要写在methods,有的可直接写在page下
  20. 父类引用指向子类对象,为什么会调用的是子类中重新的方法

热门文章

  1. java cookie包_Java cookie的使用
  2. 基于element ui的收起展开检索条件效果
  3. 对象序列化与反序列化(二进制 byte[])
  4. 实现java内存队列消费事件-ConcurrentLinkedQueue
  5. MyBatis快速将MySQL转换成Oracle语句
  6. 第10讲 | 深入区块链技术(二):P2P网络
  7. 关于组装电脑装win10不得不说的小故事
  8. drill 数据库查询方式简单说明
  9. eclipse 矩阵删除行列,也可以矩阵形式编辑
  10. JAVA泛型详解2 转载