SQLiteOpenHelper是管理数据库的工具类。

下面提供一个模板:

package com.example.intelligencecontrol.utils;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;public class MyDBOpenHelper extends SQLiteOpenHelper
{public MyDBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory paramCursorFactory, int version){super(context, name,null, version);}public void onCreate(SQLiteDatabase db) //初次使用软件时生成数据库表{db.execSQL("CREATE TABLE"+ " control(_id int auto_increment primary key, cname VARCHAR(20), ccommand VARCHAR(20), ccalendar VARCHAR(20))");}/*** 升级软件时更新数据库表结构*/
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) //newVersion新版本号为代码控制{db.execSQL("CREATE TABLE control(_id int auto_increment primary key ,cname VARCHAR(20), ccommand VARCHAR(20), ccalendar VARCHAR(20))");}//_id int auto_increment primary key设置id自增长
}

获取SQLiteOpenHelper对象并且操作数据库

private MyDBOpenHelper myDBOpenHelper;
private SQLiteDatabase db;
.
.
.
myDBOpenHelper = new MyDBOpenHelper(this, "control.db", null, 1);
db = myDBOpenHelper.getWritableDatabase(); Cursor cursor = db.rawQuery("select * from control", null);
while (cursor.moveToNext())   //获取数据库的信息
    {TimerTaskItem taskItem = new TimerTaskItem();taskItem.setName(cursor.getString(1));taskItem.setCommand(cursor.getString(2));taskItem.setCommandTime(cursor.getString(3));item.add(taskItem);}
.
.
. //插入数据库
db.execSQL("insert into control values(null,?,?,?)",new String[] { itemData.getName(), itemData.getCommand(),itemData.getCommandTime() });
.
.
. //删除数据库db.delete("control", "cname = ? and ccommand = ? and ccalendar = ?",        new String[] { item.get(position).getName(), item.get(position).getCommand(),          item.get(position).getCommandTime() });
/*** 关闭数据库*/
    @Override
public void onDestroy()
{super.onDestroy();if (myDBOpenHelper != null) {myDBOpenHelper.close();}
}

getWritableDatabase()以写的方式打开数据库,若是数据库的磁盘空间满了,那么数据库就只能读不能写,再用它打开数据库就会出错。

若是使用getReadableDatabase()以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,但打开失败后会继续以只读方式打开数据库。

转载于:https://www.cnblogs.com/tangZH/p/5880068.html

SQLiteOpenHelper类相关推荐

  1. Android中SQLiteOpenHelper类的onUpgrade方法浅谈

    public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 这个方法在实现时需要重写. onUpg ...

  2. android SQLite使用SQLiteOpenHelper类对数据库进行操作

    转自:http://byandby.iteye.com/blog/835580,转载请标明出处! 一. SQLite介绍  SQLite是android内置的一个很小的关系型数据库.  SQLite的 ...

  3. android sqlite 类使用,Android SQLite编程详解(不使用SQLiteOpenHelper类)

    数据库功能非常强大,使用起来也非常方便,SQLite数据库的一般操作包括:创建数据库.打开数据库.创建表.向表中添加数据.从表中删除数据.修改表中的数据.关闭数据库.删除指定表.删除数据库和查询表中的 ...

  4. SQLiteOpenHelper简介

    SQLiteDatabase是Android SDK中操作数据库的核心类之一.使用SQLiteDatabase可以打开数据库,也可以对数据库进行操作.然而为了数据库升级的需要以及使用更方便,往往使用S ...

  5. 安卓案例:利用SQLiteOpenHelper操作数据库及表

    安卓案例:利用SQLiteOpenHelper操作数据库及表 一.运行效果 二.涉及知识点 1.利用SQLiteOpenHelper类创建与升级数据库 这个类是一个抽象类,我们必须继承该类创建一个子类 ...

  6. SQliteDatabase相关操作的工具类

    (一).MySQLiteDatabaseHelper类的封装: 1.public void getConnection(): /**  * @作用:执行带占位符的select语句,查询数据,返回Cur ...

  7. android数据库isnull,Android中SQLite数据库知识点总结

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  8. android数据库降级_Android SQLite (二.数据库创建,升级及降级)

    上篇文章简介和常用语法介绍了SQLite数据库的基本信息和一些常用的语法操作,本篇文章主要介绍Android开发过程中SQLite数据库的创建使用和常见问题处理. 一.SQLiteOpenHelper ...

  9. DASH流媒体MPD文件存储

    Android中常见的持久化数据存储方法有三个:文件存储.SharedPreferences存储和数据库存储.文件存储的核心思想是将数据按照streaming的形式保存到本地,这点与C++有共通点.写 ...

最新文章

  1. mysql 主键选择_mysql – 无论列名如何,都选择主键?
  2. AI产品经理必修——揭开算法的面纱(余弦定理)
  3. FlexRay车载网络标准
  4. iphone6s无4g显示无服务器,iPhone 6S无信号,镇定修复显现4G
  5. 时隔一年,盘点CVPR 2019影响力最大的20篇论文
  6. php oracle 8.1.7,Oracle 8.1.7在redhat 7.3的安装方法
  7. renameTo()方法的用法
  8. 三、JAVA流程控制(选择结构if、while、for、switch)
  9. STM32——库函数版——12864点阵显示屏驱动
  10. 阿里云盘来袭,送几个福利码!手慢无!
  11. 桩身弹性压缩计算公式_桩身弹性压缩量计算
  12. 新唐(nuvoton)MCU软件开发指南—环境搭建设置
  13. 笔记本电脑如何同时上内外网(通过usb外接网卡实现虚拟机连外网)
  14. gala米兰达斯(Mirandus)游戏介绍
  15. org.hibernate.TransientObjectException:The given object has a null identifier
  16. java键盘键入法_【java基础】键盘键入内容
  17. android p2p 视频通话,GitHub - wutonglei/webrtc_android: P2P Webrtc VideoConference 视频通话 视频会议...
  18. UE4蓝图基础——蓝图流程控制节点
  19. 圣诞节快乐:来自程序员们的问候~
  20. 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总

热门文章

  1. initramfs 文件系统
  2. 关于AXI DMA CYCLIC 调试过程中的问题
  3. ncbi查找目的基因序列_使用NCBI设计qPCR引物方法
  4. java socket datagramsocket_用DatagramSocket写的个渣渣聊天后台,求拍砖
  5. 中国公有云三巨头,同时支持Rancher Kubernetes平台
  6. ET001 不可不掌握的 Logstash 使用技巧
  7. Node.js 系列:构建原生 Node.js 应用
  8. 人工智能行业应用之:为建筑工程提供全新解决方案
  9. Map-Reduce和分片集合
  10. 什么是ECS以及如何使用登陆