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()以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,但打开失败后会继续以只读方式打开数据库。
SQLiteOpenHelper类的更多相关文章
- Android笔记——SQLiteOpenHelper类
public 抽象类 SQLiteOpenHelper 继承关系 Java.lang.Object android.database.sqlite.SQLiteOpenHelper 类概要 这是一个辅 ...
- Android SQLiteOpenHelper类的使用
SQLiteOpenHelper类是Android平台提供的用于SQLite数据库的创建.打开以及版本管理的帮助类.一般需要继承并这个类并实现它的onCreate和onUpgrade方法,在构造方法中 ...
- android SQLite使用SQLiteOpenHelper类对数据库进行操作
android SQLite使用SQLiteOpenHelper类对数据库进行操作 原文: http://byandby.iteye.com/blog/835580
- Android中SQLiteOpenHelper类的onUpgrade方法浅谈
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 这个方法在实现时需要重写. onUpg ...
- Android之ListView动态添加数据(SQLiteOpenHelper类添加数据)
一.SQLiteOpenHelper类: 这次我们通过sqlite来动态添加数据,接下来我们创建一个openHelper.java,在前面sqlite博客中我们已经详细的讲了SQLite的创建及使用等 ...
- Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析
前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增.删.查.改) 目录 1. SQLite数据库介绍 SQLite是Android内置的 ...
- Android中SQLite数据库操作(2)——SQLiteOpenHelper类
如果开发者对SQL语法不熟悉,我要告诉你一个好消息,Android提供了一个SQLiteOpenHelper类. 在实际项目中很少使用SQLiteDatabase的方法(请看:http://blog. ...
- 安卓在SQLiteOpenHelper类进行版本升级和降级
一.升级(使用到onUpgrade()方法和onCreate()没有安装过才用到) 简单理一下思路: v1.0 (也就是说第一次使用这软件,没有安装过 所有在onCreate() 方法里写代码) ...
- android SQLite使用SQLiteOpenHelper类对数据库进行增删查改
一个简单的例子,当点击按钮时进行相应的操作,效果图如下: 项目代码如下: DatabaseHelper类 package com.example.sqlitedatebasetest; import ...
随机推荐
- 使用Windows EFS(怎么给文件夹加密)进行文件加密
和Windows BitLocker一样,Encrypting File System(EFS,加密文件系统)是Windows内置的一套基于公共密钥的加密机制,可以加密NTFS分区上的文件和文件夹,能 ...
- Dean-Edward的事件系统实现
jQuery早期的事件系统,主要借鉴自Dean-Edward的事件模型.虽说早期的该事件模型也有些许bug,诸如: 1,绑定的事件及其处理程序等数据并未存储到缓存中,而是直接存储在dom元素上,这样不 ...
- 1Z0-053 争议题目解析699
1Z0-053 争议题目解析699 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 699.Your database is using a default temporary ta ...
- 使用OAuth打造webapi认证服务供自己的客户端使用
一.什么是OAuth OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版.注意是Authorization(授权),而不是Authentication(认证). ...
- mysql数据库去重复
参考:http://www.cnblogs.com/duanjie/archive/2011/08/13/2136862.html 说到去重复,感觉逻辑很简单.但动手写起来却并不是那么容易.面试的时候 ...
- SQL Server 2014里的性能提升
在这篇文章里我想小结下SQL Server 2014引入各种惊艳性能提升!! 缓存池扩展(Buffer Pool Extensions) 缓存池扩展的想法非常简单:把页文件存储在非常快的存储上,例如S ...
- 现代Web应用开发者必备的六大技能
过去,应用开发需要注重大量的专业知识,程序员只需关注单一的语言(比如COBOL.RPG.C++等),并利用该语言创建应用.而如今,时代在变迁.Web不再是单单关注独立的一面.相反,一个现代化的Web应 ...
- 7.4 数据注解属性--Required
Required attribute can be applied to a property of a domain class. EF Code-First will create a NOT N ...
- Xamarin.Android之封装个简单的网络请求类
一.前言 回忆到上篇 <Xamarin.Android再体验之简单的登录Demo> 做登录时,用的是GET的请求,还用的是同步, 于是现在将其简单的改写,做了个简单的封装,包含基于Http ...
- 模仿36。杀毒~button
<Style x:Key="360btn" TargetType="{x:Type Button}"> <Setter Property=&q ...