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 ...
随机推荐
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。
INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...
- WCF简单使用(分别部署在控制台和IIS上)
WCF部署到控制台 1.下面通过一个简单的服务示例来认识WCF1.新建项目,名称IBLL,解决方案名称WcfDemo,模板选择类库2.修改Class1.cs文件名称为 IUserInfoService ...
- 1002 Phone Numbers 解题报告
1002. Phone Numbers Time limit: 2.0 secondMemory limit: 64 MB In the present world you frequently me ...
- 在ASP.NET MVC5应用程序中快速接入QQ和新浪微博OAuth
http://www.cnblogs.com/xiaoyaojian/p/4611660.html
- 使用java mail 发送邮件
1.关联jar包: activation.jar mail.jar 2.调用 @Test public void test1() { List<String> imageUrlLi ...
- Web Compiler
Web Compiler The easiest and most powerful way to compile LESS, Scss, Stylus, JSX and CoffeeScript f ...
- git 远程库命令
git 常用命令在这里就不在说了,初学者点击http://www.cnblogs.com/Vdiao/p/5267250.html Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上 ...
- [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)
Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- asp之缓存 cachestate
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- MBP使用笔记
1. 链接测试机命令: 登录:ssh ria@000.000.000.000 然后输入密码即可 退出:exit 2. SwitchySharp导入的是bak文件. 3. 使用goagentFQ的使用的 ...