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;
}
}

Android 常用数据操作封装类案例的更多相关文章

  1. Android 常用数据适配器SimpleAdapter

    在<Android 常用数据适配器ArrayAdapter>中介绍了ArrayAdapter数据适配器.但是存在一个缺陷,那就是条目的图标都固定相同,要显示每个条目的图标都不相同,那么使用 ...

  2. SNMP常用数据操作

    SNMP常用数据操作 snmp编程中常见的数据类型基本上就是integer32/oct_str(字节数组)/counter64/timeticks/dateAndTime这些.很多其它的比如Truth ...

  3. Android 常用数据适配器ArrayAdapter

    接着上篇文章<Android 采用Layout Inflater创建一个View对象>,本文采用常用数据适配器ArrayAdapter 新建项目后,在layout文件夹下新建list_it ...

  4. mybatis 2 -常用数据操作

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

  5. MySql常用数据操作

    1.数据库操作: MySQL服务管理命令: 1.启动服务:sudo service mysql start 2.停止服务:sudo service mysql stop 3.重新启动服务:sudo s ...

  6. Delphi ADO数据操作封装类

    [delphi] view plaincopyprint? { 将数据集操作方面的东西全部封装成一个单独的类 TcustomAdoDataSet是TadoQuery.TadoTable.TadoDat ...

  7. Android常用数据类型转换

    String转int.float.double.byte[].bitmap Int i = Integer.parseInt(str); Float f = Float.parseFloat(str) ...

  8. 无废话Android之listview入门,自定义的数据适配器、采用layoutInflater打气筒创建一个view对象、常用数据适配器ArrayAdapter、SimpleAdapter、使用ContentProvider(内容提供者)共享数据、短信的备份、插入一条记录到系统短信应用(3)

    1.listview入门,自定义的数据适配器 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/and ...

  9. Android清除本地数据缓存代码案例

    Android清除本地数据缓存代码案例 直接上代码: /*  * 文 件 名:  DataCleanManager.java  * 描    述:  主要功能有清除内/外缓存,清除数据库,清除shar ...

随机推荐

  1. C#通过COM组件操作IE浏览器(三):了解IHTMLDocument2

    IHTMLDocument2方法 说明 write 写入 writeln 写入并换行 open 打开一个流,以收集 document.write 或 document.writeln 的输出 clos ...

  2. 刺透内网的HTTP代理

    从偶然出发 在做测试的时候发现了这样一个漏洞,原请求报文如下: GET / HTTP/1.1 Host: attack_website [... HEADER ...] ... 当时最初目的是想测SS ...

  3. h5面试题

    一.匿名函数实现阶乘第一种写法: 43 > F = fun(Func, 1) -> 1;43 > (Func, N) -> N * Func(Func, N - 1) end. ...

  4. MySQL数据库的锁机制

    在并发访问情况下,很有可能出现不可重复读等等读现象.为了更好的应对高并发,封锁.时间戳.乐观并发控制(乐观锁).悲观并发控制(悲观锁)都是并发控制采用的主要技术方式. 锁分类 ①.按操作划分:DML锁 ...

  5. AI - 概念(Concepts)

    01 - AI.ML与DL的关系 从涵盖范围上来讲,人工智能(AI)大于机器学习(ML)大于深度学习(DL) 人工智能(AI):能够感知.推理.行动和适应的程序: 机器学习(ML):能够随着数据量的增 ...

  6. 网站后台搭建--springboot项目是如何创建的

    在创建项目之前先说一下ide的问题,从学习软件开始一直到一个月之前,开发用的IDE都是Eclipse,对,就是这个远古时代的开发工具,在使用过程中虽然总是遇到各种bug,但内心里还是存在着一丝理解的想 ...

  7. 如何用chrome注册版权登记系统

    版权登记系统的网址: http://apply.ccopyright.com.cn/goadatadic/registergetList.do 打开网站,一股古朴的气息扑面而来,嗯,一看就是IE时代的 ...

  8. webstorm基础使用

    因为需要用到sass自动编译,从sublime转到了webstorm.现在自我感觉sublime需要的插件太多,而webstorm很多功能都帮你及成,不需要你去找插件和安装插件. webstorm的好 ...

  9. 《HelloGitHub月刊》第 03 期

    <HelloGithub>第03期 兴趣是最好的老师,而<HelloGitHub> 就是帮你找到兴趣! 因为我比较熟悉python语言,所以月刊中python语言的项目居多,个 ...

  10. ABP框架是怎么一回事呢?

    ABP(ASP.NET Boilerplate['bɔɪlɚplet]:样板文件),就是一套基于.Net开源框架,官方地址为:https://aspnetboilerplate.com/ , 在这个地 ...