SQLiteOpenHelper的使用
一、SQLiteOpenHelper的使用说明:
1、 SQLiteOpenHelper时一个抽象类,子类必须实现的方法:
*: onCreate(),数据库第一次被创建时调用,在里面可以执行创建表,初始化数据等
**:onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。
/**
* 数据库第一次被创建时,调用,可以在里面执行创建表,初始化数据等操作
* */
@Override
public void onCreate(SQLiteDatabase db) { }
/**
* 当数据库需要被更新的时候执行,例如删除久表,创建新表。
*
* */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
2、得到SQLiteOPenHelper的实例,并打开数据库
/**
* 得到SQLiteOpenHelper的实例
* */
public static synchronized DBHelperTest getInstance(Context context){
if(instance == null){
instance = new DBHelperTest(context);
}
return instance;
}
/**
* 打开数据库,依赖于OpenHelper实例
* */
public synchronized void open(){
if(instance != null){
this.db = instance.getWritableDatabase();
}
}
关闭数据库:
/**
* 关闭数据库
* */
public synchronized void close(){
if(db != null){
db.close();
}
}
3、对数据库的常见操作(增删改查)
*增加:
/**
* 插入数据
*
* @param table_name 表名称
* @cv:要插入的值
* @insert的第二个参数:当cv为空,会向表中查入一个除主键外,其他字段名不存在的一行,底层数据库是不允许的,这是需用第二个参数为各个字段命名,当cv不为空,该值设置为null
**/
public synchronized void insert(String table_name, ContentValues cv) { db.insert(table_name, null, cv);
}
删除
/**
* 删除方法
* @table_name:表名
*/
public void del(String table_name,int id) {
if (db == null) {
//获得SQLiteDatabase实例
db = getWritableDatabase();
}
//执行删除
db.delete(table_name, "_id=?", new String[]{String.valueOf(id)});
}
修改
/**
* 修改数据
*
* @param table_name 表名称
**/
public synchronized void update(String table_name, ContentValues cv, String whereClause, String whereArgs[]) {
db.update(table_name, cv, whereClause, whereArgs);
}
查询
/**
* 查询数据
* public Cursor query(String table, String[] columns, String selection,
* String[] selectionArgs, String groupBy, String having,
* String orderBy)
*table:表名
* columns:想要显示的列,若为空则返回所有列,不建议设置为空,如果不是返回所有列)
* selection:声明要返回的行的要求,如果为空则返回表的所有行。)
*selectionArgs:行对应的要求
* groupBy:分组方式,若为空则不分组.
* having:(having条件,若为空则返回全部(不建议))
* orderBy:(排序方式,为空则为默认排序方式)
* */
public Cursor query(String table_name) {
//获得SQLiteDatabase实例
// SQLiteDatabase db = getWritableDatabase();
//查询获得Cursor
Cursor c = db.query(table_name, null, null, null, null, null, null);
return c;
}
/**
* 查询数据
* public Cursor query(String table, String[] columns, String selection,
* String[] selectionArgs, String groupBy, String having,
* String orderBy)
*table:表名
* columns:想要显示的列,若为空则返回所有列,不建议设置为空,如果不是返回所有列)
* selection:声明要返回的行的要求,如果为空则返回表的所有行。)
*selectionArgs:行对应的要求
* groupBy:分组方式,若为空则不分组.
* having:(having条件,若为空则返回全部(不建议))
* orderBy:(排序方式,为空则为默认排序方式)
* */
public Cursor query(String table_name) {
//获得SQLiteDatabase实例
// SQLiteDatabase db = getWritableDatabase();
//查询获得Cursor
Cursor c = db.query(table_name, null, null, null, null, null, null);
return c;
}
SQLiteOpenHelper的使用的更多相关文章
- Xamarin.Android之SQLiteOpenHelper
一.前言 在手机中进行网络连接不仅是耗时也是耗电的,而耗电却是致命的.所以我们就需要数据库帮助我们存储离线数据,以便在用户未使用网络的情况下也可以能够使用应用的部分功能,而在需要网络连接的功能上采用提 ...
- 使用SQLiteOpenHelper的onUpgrade实现数据库版本升级
Andoird的SQLiteOpenHelper类中有一个onUpgrade方法.帮助文档中只是说当数据库升级时该方法被触发.经过实践,解决了我一连串的疑问: 1. 帮助文档里说的"数据库升 ...
- Android笔记——SQLiteOpenHelper类
public 抽象类 SQLiteOpenHelper 继承关系 Java.lang.Object android.database.sqlite.SQLiteOpenHelper 类概要 这是一个辅 ...
- SQLiteOpenHelper类
SQLiteOpenHelper是管理数据库的工具类. 下面提供一个模板: package com.example.intelligencecontrol.utils; import android. ...
- 浅谈SQLiteOpenHelper之onUpgrade例子
当你看到这个博文,首先你要了解onCreate这个创建方法,再来继续下文!(可以参考我的上一个博文http://www.cnblogs.com/896240130Master/p/6119616.ht ...
- 浅谈SQLiteOpenHelper之onCreate例子
哈喽大家好!如果你感觉SQLiteOpenHelper不懂的可以看一下. onCreate(SQLiteDatabase db) : 当数据库被首次创建时执行该方法,一般将创建表等初始化操作在该方法 ...
- Android SQLiteOpenHelper类的使用
SQLiteOpenHelper类是Android平台提供的用于SQLite数据库的创建.打开以及版本管理的帮助类.一般需要继承并这个类并实现它的onCreate和onUpgrade方法,在构造方法中 ...
- Android中使用SQLiteOpenHelper管理SD卡中的数据库
使用Android中自带的SQLiteOpenHelper可以完成数据库的创建与管理,但有两点局限: (1)数据库创建在内存卡中,大小受限,创建位置位于/data/data/应用程序名/databas ...
- Android SQLiteOpenHelper(二)
上一篇我们已经了解了SQLiteOpenHelper 和 构造函数. 现在我们就来掌握一下:onCreate( ) onUpgrade( ) onDowngrade( ) public void ...
随机推荐
- 如何写出优雅的Python(二)
Print sorted list: colors=['red','green','blue','yellow'] for color in sorted(colors): print color f ...
- 【笔记】jquery js获取浏览器滑动条距离顶部距离的写法
jq写法 $(window).scroll(function(){ var $top = $(document).scrollTop(); }); /*注:$(window).scroll(funct ...
- DOM和DHTML等,复习总结
DOM(Document Object Model),文件对象模型.HTML(HyperText Markup Language),超文本标记语言.HTML的超类:Node->Document: ...
- netty 解决TCP粘包与拆包问题(二)
TCP以流的方式进行数据传输,上层应用协议为了对消息的区分,采用了以下几种方法. 1.消息固定长度 2.第一篇讲的回车换行符形式 3.以特殊字符作为消息结束符的形式 4.通过消息头中定义长度字段来标识 ...
- requirejs基础教程
一.初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用. ...
- eclipse连hadoop2.x运行wordcount 转载
转载地址:http://my.oschina.net/cjun/blog/475576 一.新建java工程,并且导入hadoop相关jar包 此处可以直接创建mapreduce项目就可以,不用下面折 ...
- Logstash学习-Hello World
1.安装 rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearchcat > /etc/yum.repos.d/l ...
- java性能监控常用命令
jps -m -l:主要用来输出JVM中运行的进程状态信息 jstack -l pid 来观察锁持有情况 jsatck pid | grep pid(十六进制):输出进程pid的堆栈信息 jmap - ...
- 磁盘IO
基本概念: 在数据库优化和存储规划过程中,总会提到IO的一些重要概念,在这里就详细记录一下,个人认为对这个概念的熟悉程度也决定了对数据库与存储优化的理解程度,以下这些概念并非权威文档,权威程度肯定就不 ...
- webDriver 执行杀死浏览器进程方法
/** * 执行dos命令 * @param command */ public static void command(String command) { ...