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 ...
随机推荐
- C# 把背景为白色的图片变成透明图片
Image Imageimage; Imageimage = System.Drawing.Image.FromFile(@"C:\A.JPG"); Bitmap bitmap = ...
- Repeater的Item项绑定DropDownList
前台页面: <asp:Repeater ID="rptJgtList" runat="server" OnItemDataBound="rptJ ...
- Android 控件属性介绍
1.LinearLayout(线性布局): 可以分为水平线性:android:orientation= " horizontal " 和垂直线性:android:orientati ...
- redis 参考文章
1. redis配置认证密码:http://blog.csdn.net/zyz511919766/article/details/42268219
- requirejs基础教程
一.初识requirejs 随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用. ...
- 数据分析 - 斯特鲁普效应(Stroop effect)
数据分析 - 斯特鲁普效应(Stroop effect) Reinhard得到了一份斯特鲁普效应试验的数据,我们来分析下,文字的颜色,是否会影响受试者的反应. 这里先看看什么是斯特鲁普效应: 斯特鲁普 ...
- A ship is always safe at the shore - but that is not what it is built for.
A ship is always safe at the shore - but that is not what it is built for. 船靠岸边总是安全的,但那不是建造它的目的.
- Android ProgressBar分析及自定义ProgressBar
ProgressBar是在执行耗时操作时的一种人性化设计.分为两种形式:转圈的,能显示进度的. 而能取决于是什么样式的PregressBar,当然就是PregressBar的样式啦~ Widget.P ...
- webapi mvc session一直获取不到问题
前一段时间在给移动端写接口时遇到一个调用接口发送邮箱 session 一直获取不到的问题.我来给遇到问题的同志们说一说 自个在网上查了好多资料,问了一些朋友后.终于找到解决方案了. 大家都知道weba ...
- ML-线性回归
记样本数目为$m$,样本点$i$用$(x^{(i)}, y^{(i)})$表示,其中 $x^{(i)}=\begin{pmatrix}x_1^{(i)}\\ x_2^{(i)}\\ ...\\x_n^ ...