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 ...
随机推荐
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- OC-01 编译链接的作用
编译:检测代码的语法合法性,随后生成.o文件. 链接:把项目中所有的.out合并,生成一个可执行文件. OC编译连接过程 .m---->.o---->.out . 检测源文件的语法合法性 ...
- tensorflow 学习笔记
tensorflow一些函数: 1.tf.ones(shape,type=tf.float32,name=None) tf.ones([2, 3], int32) ==> [[1, 1 ...
- angularJS——模块
一.在讲angularjs的模块之前,我们先介绍一下angular的一些知识点: AngularJS是纯客户端技术,完全用Javascript编写的.它使用的是网页开发的常规技术(HTML,CSS,J ...
- 关于HandlerThread的分析
Android中的Thread没有对java中的Thread做任何封装,而Android提供了一个遍历方法HandlerThread,他继承于Thread,实现了对遍历系统的一些封装,下面研究一下Ha ...
- java URL实现调用其他系统发送报文并获取返回数据
模拟本系统通过Url方式发送报文到目标服务器,并获取返回数据:(实现类) import java.io.BufferedOutputStream; import java.io.BufferedRea ...
- Instant Complexity - POJ1472
Instant Complexity Time Limit: 1000MS Memory Limit: 10000K Description Analyzing the run-time comple ...
- oracle 删除用户时的坑
ORACLE在使用 SELECT SID,SERIAL# FROM V$SESSION WHERE USERNAME='dt_zntg_trade' 删除会话时,一定要注意dt_zntg_trade的 ...
- 编码转换的处理 DreamWeaver SC6 打开会出现javacsript出现问题的处理
编码转换的处理: 打开DW后,修改里面有个"页面属性": 点击页面属性,会弹出一个窗口,点击"标题/编码",在"编码"里面选择你要转换的 ...
- getFragmentManager()和getSupportFragmentManager()
在Android开发中,少不了Fragment的运用.目前在实际运用中,有v-4包下支持的Fragment以及app包下的Fragment,这两个包下的FragmentManager获取方式有点区别, ...