SQLiteOpenHelper类
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类相关推荐
- Android中SQLiteOpenHelper类的onUpgrade方法浅谈
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 这个方法在实现时需要重写. onUpg ...
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
转自:http://byandby.iteye.com/blog/835580,转载请标明出处! 一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. SQLite的 ...
- android sqlite 类使用,Android SQLite编程详解(不使用SQLiteOpenHelper类)
数据库功能非常强大,使用起来也非常方便,SQLite数据库的一般操作包括:创建数据库.打开数据库.创建表.向表中添加数据.从表中删除数据.修改表中的数据.关闭数据库.删除指定表.删除数据库和查询表中的 ...
- SQLiteOpenHelper简介
SQLiteDatabase是Android SDK中操作数据库的核心类之一.使用SQLiteDatabase可以打开数据库,也可以对数据库进行操作.然而为了数据库升级的需要以及使用更方便,往往使用S ...
- 安卓案例:利用SQLiteOpenHelper操作数据库及表
安卓案例:利用SQLiteOpenHelper操作数据库及表 一.运行效果 二.涉及知识点 1.利用SQLiteOpenHelper类创建与升级数据库 这个类是一个抽象类,我们必须继承该类创建一个子类 ...
- SQliteDatabase相关操作的工具类
(一).MySQLiteDatabaseHelper类的封装: 1.public void getConnection(): /** * @作用:执行带占位符的select语句,查询数据,返回Cur ...
- android数据库isnull,Android中SQLite数据库知识点总结
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...
- android数据库降级_Android SQLite (二.数据库创建,升级及降级)
上篇文章简介和常用语法介绍了SQLite数据库的基本信息和一些常用的语法操作,本篇文章主要介绍Android开发过程中SQLite数据库的创建使用和常见问题处理. 一.SQLiteOpenHelper ...
- DASH流媒体MPD文件存储
Android中常见的持久化数据存储方法有三个:文件存储.SharedPreferences存储和数据库存储.文件存储的核心思想是将数据按照streaming的形式保存到本地,这点与C++有共通点.写 ...
最新文章
- mysql 主键选择_mysql – 无论列名如何,都选择主键?
- AI产品经理必修——揭开算法的面纱(余弦定理)
- FlexRay车载网络标准
- iphone6s无4g显示无服务器,iPhone 6S无信号,镇定修复显现4G
- 时隔一年,盘点CVPR 2019影响力最大的20篇论文
- php oracle 8.1.7,Oracle 8.1.7在redhat 7.3的安装方法
- renameTo()方法的用法
- 三、JAVA流程控制(选择结构if、while、for、switch)
- STM32——库函数版——12864点阵显示屏驱动
- 阿里云盘来袭,送几个福利码!手慢无!
- 桩身弹性压缩计算公式_桩身弹性压缩量计算
- 新唐(nuvoton)MCU软件开发指南—环境搭建设置
- 笔记本电脑如何同时上内外网(通过usb外接网卡实现虚拟机连外网)
- gala米兰达斯(Mirandus)游戏介绍
- org.hibernate.TransientObjectException:The given object has a null identifier
- java键盘键入法_【java基础】键盘键入内容
- android p2p 视频通话,GitHub - wutonglei/webrtc_android: P2P Webrtc VideoConference 视频通话 视频会议...
- UE4蓝图基础——蓝图流程控制节点
- 圣诞节快乐:来自程序员们的问候~
- 好分数班级等级C_2020年上海高校MTA旅游管理硕士分数线汇总